从NSDictionary获取对象

时间:2011-10-07 12:09:01

标签: iphone json nsdictionary

我从网址获得此结果:

NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

它看起来像这样:

  [{"modele":"Audi TT Coup\u00e9 2.0 TFSI","modele_annee":null,"annee":"2007","cilindre":"4 cyl","boite":"BVM","transmision":"Traction","carburant":"ES"},
{"modele":"Audi TT Coup\u00e9 2.0 TFSI","modele_annee":null,"annee":"2007","cilindre":"4 cyl","boite":"BVM","transmision":"Traction","carburant":"ES"}]

所以它包含2个词典。我需要从这个结果中获取所有键中的对象。我怎么能这样做?

我试过了:NSDictionary vehiculesPossedeDictionary=(NSDictionary *)result;

然后这个:[vehiculesPossedeDictinary objectForKey:@"modele"];但这不起作用。

请帮助我......提前致谢

4 个答案:

答案 0 :(得分:3)

你所拥有的是一个JSON字符串,它描述了一个包含两个“对象”的“数组”。这需要使用JSON解析器转换为Objective-C对象,转换后将是包含两个NSDictionarys的NSArray。

答案 1 :(得分:1)

您无法直接从JSON字符串中获取字典。您将不得不首先通过JSON解析器运行它。

此时,iOS SDK中没有一个版本,因此您必须下载第三方工具并将其包含在项目中。

有许多不同的JSON解析器,包括TouchJSON,YAJL等,您可以找到并比较它们。就个人而言,我正在使用JSONKit

答案 2 :(得分:1)

@MatthewGillingham建议JSONKit。我想它确实很好,但我总是使用它的竞争对手json-framework。没有真正的理由,我先找到它并先学会它。我认为它的界面有点简单,但很多人也可以使用JSONKit。

使用json-framework:

require JSON.h

......然后

NSString *myJsonString = @"[{'whatever': 'this contains'}, {'whatever', 'more content'}]";

NSArray *data = [myJsonString JSONValue];

foreach (NSDictionary *item in data) {
    NSString *val = [item objectForKey:@"whatever"];
    //val will contain "this contains" on the first time through
    //this loop, then "more content" the second time.
}

答案 3 :(得分:1)

如果您有字典数组,只需将数组中的对象分配给字典,如

NSDictionary *dictionary = [array objectAtIndes:0];

然后使用此词典获取值。

相关问题