解析 JSON 字典/数组
Posted
技术标签:
【中文标题】解析 JSON 字典/数组【英文标题】:Parsing JSON dictionary / array 【发布时间】:2011-04-13 16:37:36 【问题描述】:如果 JSON 网络服务返回类似这样的内容(房屋详情)
[
id:4,
price: 471,
location: "New York",
size: 3000
,
id:7,
price: 432,
location: "London",
size: 3200
,
id:22,
price: 528,
location: "Tokyo",
size: 2000
]
我将如何逐一遍历每个房屋?我正在使用 ASIHTTPRequest 和 JSON 解析器:http://stig.github.com/json-framework/
我想我可以像这样得到字典:
NSString *theResponse = [request responseString];
NSDictionary *dictionary = [theResponse JSONValue];
.. 但我不确定如何遍历每个房子。
【问题讨论】:
看看这个解析器github.com/johnezang/JSONKit。它将 JSON 记录转换为 Objective-C 对象,类似于 NSPropertyListSerialization 处理 plist 的方式。此外,它非常快。 【参考方案1】:
id:4,
price: 471,
location: "New York",
size: 3000
,
id:7,
price: 432,
location: "London",
size: 3200
,
id:22,
price: 528,
location: "Tokyo",
size: 2000
这是字典数组...您可以创建一个 Modal 类您的 House(attributed :id,price,location,size) 并按如下方式对其进行迭代...(考虑到您最终拥有上述内容)..
NSArray *houses = [dictionary objectForKey:<youHaveNotProvideItInYourData>];
NSMutableArray *populatedHouseArray = [[NSMutableArray alloc]init];
for(int i=0;i<[houses count];i++)
NSDictionary *tempDictionary = [houses objectAtIndex:i];
House *tempHouse = [[House alloc]init];
if([tempDictionary objectForKey:@"id"]!=nil
tempHouse.id = [tempDictionary objectForKey:@"id"];
//and so on for other keys
[populatedHouseArray addObject:tempHouse];
[tempHouse release];
谢谢,
【讨论】:
感谢以上。您能否澄清一下您是否正在处理populatedHouseArray 中的一栋房子?以上是关于解析 JSON 字典/数组的主要内容,如果未能解决你的问题,请参考以下文章