我从网址获得此结果:
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"];
但这不起作用。
请帮助我......提前致谢
答案 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];
然后使用此词典获取值。