我是新手Ruby。 我有一个如下格式的现有JSON文件。
{
"ASRtest": {
"ASRHDR": "This is asr HDR",
"ASRTestType": "DevTest",
"Scenario": [
{
"ScenarioNumber": 1,
"ScenarioName": "HTTP Validation",
"ScenarioDescription": "Validate if the API alows access over HTTP",
"ScExecutionStatus": "Execution Complete",
"ScenarioStatus": "In-Complete",
"ScenarioSeverity": false,
"TestCase": [
{
"TestCaseNumber": 1,
"TestCaseName": "HTTP Validation - using POST method ",
"TcExecutionStatus": "Execution Error",
"TcStatus": "NA",
"TcSeverity": "NA"
}
]
}
]
}
}
我正在我的 Ruby 程序中读取这个文件,并想要将另一种情况添加到这个文件中。例如:
{
"ASRtest": {
"ASRHDR": "This is asr HDR",
"ASRTestType": "DevTest",
"Scenario": [
{
"ScenarioNumber": 1,
"ScenarioName": "HTTP Validation",
"ScenarioDescription": "Validate if the API alows access over HTTP",
"ScExecutionStatus": "Execution Complete",
"ScenarioStatus": "In-Complete",
"ScenarioSeverity": false,
"TestCase": [
{
"TestCaseNumber": 1,
"TestCaseName": "HTTP Validation - using POST method ",
"TcExecutionStatus": "Execution Error",
"TcStatus": "NA",
"TcSeverity": "NA"
}
]
},
{
"ScenarioNumber": 2,
"ScenarioName": "SC2",
"ScenarioDescription": "Desc",
"ScExecutionStatus": "Execution Complete",
"ScenarioStatus": "In-Complete",
"ScenarioSeverity": false,
"TestCase": [
{
"TestCaseNumber": 1,
"TestCaseName": "Some Name ",
"TcExecutionStatus": "Execution Error",
"TcStatus": "NA",
"TcSeverity": "NA"
}
]
}
]
}
}
我已使用以下代码读取了文件。
@template_file = JSON.parse(File.read('SummaryTemplate.json'))
@ASR_Test = @template_file['ASRtest']
@ASR_Test
@scenario = @ASR_Test['Scenario']
当我尝试以下代码时:
@scenario[1]['ScenarioNumber'] = 2
我遇到了一个错误:undefined method `[]=' for nil:NilClass (NoMethodError)。@scenario变量只出现了1次,不允许我添加第二个出现的情况。
请有经验的人帮我解决这个问题。