解析JSON字典/数组

can*_*boy 4 iphone json nsdictionary asihttprequest ios

如果JSON Web服务返回这样的内容(房屋的详细信息)

[
    {
        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
    }
]
Run Code Online (Sandbox Code Playgroud)

我将如何逐个遍历每个房子?我正在使用ASIHTTPRequest和JSON解析器:http://stig.github.com/json-framework/

我想我可以这样得到字典:

NSString *theResponse = [request responseString];
NSDictionary *dictionary = [theResponse JSONValue];
Run Code Online (Sandbox Code Playgroud)

..但我不确定如何通过每个房子进行迭代.

Rav*_*vin 9

{
        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
    }
Run Code Online (Sandbox Code Playgroud)

这是一系列词典......你可以创建一个你的House的Modal类(归因于:id,价格,位置,大小)并按如下方式迭代...(考虑到你最终有上面的东西)..

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];
}
Run Code Online (Sandbox Code Playgroud)

谢谢,