如何在 Objective-C iOS 中解析 JSON
Posted
技术标签:
【中文标题】如何在 Objective-C iOS 中解析 JSON【英文标题】:How to parse JSON in objective-C iOS 【发布时间】:2016-09-14 10:12:01 【问题描述】:我想使用 AFNetworking 库在 ios 的 Objective-C 中解析 JSON
"success": 1,
"row": [
"amount": 2800
]
代码 -
arrAmount = [responseObject valueForKey:@"row"];
NSLog(@"%@",arrAmount);
NSString *strAmount =[NSString stringWithFormat:@"%@", [arrAmount valueForKey:@"amount"]];
self.lblAmount.text =[NSString stringWithFormat:@"%@",strAmount];
【问题讨论】:
【参考方案1】:row
contain 数组的响应不是字典,所以从数组的第一个对象访问量。
NSarray *arrAmount = [responseObject objectForKey:@"row"];
if arrAmount.count > 0
NSDictionary *dic = [arrAmount objectAtIndex:0];
NSString *strAmount = [NSString stringWithFormat:@"%d", [dic objectForKey:@"amount"]];
self.lblAmount.text = strAmount;
【讨论】:
【参考方案2】:使用 NSDictionary:
NSDictionary *dict = [responseObject valueForKey:@"row"];
NSLog(@"value = %@",[dict valueForKey:@"amount"]); // fetch amount value
array = [dict valueForKey:@"amount"]; // // fetch all amount value in array
NSLog(@"array = %@", array.description);
【讨论】:
这永远不会起作用,因为键row
包含数组而不是字典。
@NiravD 很高兴得到您的关注,但这会起作用 :))
你能解释一下吗?
我认为( )
标志信号节点是一个数组而不是[ ]
,我在您的消息后检查了..
它可以使用,但我确信它是数组,也可以使用 arrAmount
作为 var 名称,表明它是数组。【参考方案3】:
使用objectForKey
代替valueForKey
NSDictionary *responseObject;
NSArray *arrAmount;
arrAmount = [responseObject objectForKey:@"row"];
NSLog(@"%@",arrAmount);
NSString *strAmount =[NSString stringWithFormat:@"%@", [[arrAmount objectAtIndex:0] objectForKey:@"amount"]];
【讨论】:
以上是关于如何在 Objective-C iOS 中解析 JSON的主要内容,如果未能解决你的问题,请参考以下文章
在 IOS(Objective-C)中有效地解析 JSON 到 Realm DB
如何在 iOS 上使用 Objective-C 触发按需 ***