我是JSON和Web服务的新手,所以请耐心等待。我从Web服务器回复了一个响应。在PostMan中,它看起来像:
{
"Response": {
"TranscriptSource": "MD",
"Result": [
{
"Variant": {
"Chromosome": "chr1",
"Position": 13302,
"ReferenceAllele": "C",
"VariantAlleles": "T"
}
}
],
"JobId": 0
}
}
如果在我的connectionDidFinishLoading方法中,我这样做:
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:self.receivedData options:kNilOptions error:&error];
[dict enumerateKeysAndObjectsUsingBlock:^(id obj, id key, BOOL *stop) {
NSLog(@"key: %@ obj: %@\n", [key description], [obj description]);
}];
我得到相同的输出。基本上我想要“Variant”字段中的内容。所以我想我会先做
id result = [dict objectForKey@"Result"];
当我单步执行调试器时,结果为nil。我不知道为什么我可以打印出来。
最后我的主要问题是,如何访问响应的Variant部分,但是如果你知道为什么id result
将是nil,那也很酷。谢谢!
答案 0 :(得分:3)
您的顶级项目是具有单个键的对象“响应”。看起来你想要:
id result = [[dict objectForKey:@"Response"] objectForKey:@"Result"];