Ios 设置为对象时,JSON结果为空,但结果可以打印出来
我不熟悉JSON和web服务,所以请耐心听我说。我正在从web服务器返回响应。在《邮递员》中,它看起来像:Ios 设置为对象时,JSON结果为空,但结果可以打印出来,ios,json,Ios,Json,我不熟悉JSON和web服务,所以请耐心听我说。我正在从web服务器返回响应。在《邮递员》中,它看起来像: { "Response": { "TranscriptSource": "MD", "Result": [ { "Variant": { "Chromosome": "chr1", "Position": 13302
{
"Response": {
"TranscriptSource": "MD",
"Result": [
{
"Variant": {
"Chromosome": "chr1",
"Position": 13302,
"ReferenceAllele": "C",
"VariantAlleles": "T"
}
}
],
"JobId": 0
}
}
如果在我的ConnectiondFinishLoading方法中,我执行以下操作:
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]);
}];
我得到相同的输出。基本上我想要的是“变体”字段中的内容。所以我想我应该从做
id result = [dict objectForKey@"Result"];
当我单步执行调试器时,结果是nil。我不知道为什么,因为我可以打印出来
最后,我的主要问题是,如何访问响应的变量部分,但如果您知道为什么
id result
将为零,那也很酷。谢谢 您的顶级项是一个带有单个键“Response”的对象。看起来您想要:
id result = [[dict objectForKey:@"Response"] objectForKey:@"Result"];
您的顶级项是一个具有单个键“Response”的对象。看起来您想要:
id result = [[dict objectForKey:@"Response"] objectForKey:@"Result"];
要进入
Variant
字段,您需要深入到包含它的数组中,以便在上面进行扩展,第一个Variant
条目将位于[[[dict objectForKey:@“Response”]objectForKey:@“Result”]objectAtIndex:0]objectForKey:@“Variant”]
要进入Variant
字段,您需要深入到包含它的数组中,以便在上面进行扩展,第一个Variant
条目将位于[[[dict objectForKey:@“Response”]objectForKey:@“Result”]objectAtIndex:0]objectForKey:@“Variant”]代码>