我有一个电话本服务的JSON,我试图解释。
回复给了我6个项目。主要项目是“数据”。在该项目内部有一个包含许多标签的疯狂字符串。
items = [items valueForKeyPath:@"Data"];
{
"qry": "gørild tollefsen aas",
"result": {
"hitLinesBeforeFilter": 1,
"approxHits": 1,
"userID": 56699100,
"1": {
"listing": {
"table": "listing",
"id": "1070262",
"duplicates": [
{
"table": "listing",
"id": "1070262:0",
"idlinje": "P7IBCL",
"tlfnr": "99299999",
"etternavn": "Aas",
"fornavn": "Gørild Tollefsen",
"veinavn": "Mo",
"husnr": "42",
"postnr": "5729",
"virkkode": "P",
"apparattype": "M",
"telco": "MF",
"kilde": "P",
"prioritet": "0",
"fodselsdato": "1988-07-13",
"kommunenr": "1252",
"kid": "12611829",
"poststed": "Modalen",
"kommune": "Modalen",
"fylke": "Hordaland",
"landsdel": "V"
}
]
}
},
"dummy": null
}
}
如何在NSArray中以一种很好的方式获得“Fornavn”,“Etternavn”和“tlfnr”?
内容对我来说看起来不像JSON。
如果我尝试调试此数组的计数,则应用程序崩溃并出现以下错误:
reason: '-[__NSCFString count]: unrecognized selector sent to instance 0x14f53f80'
编辑:
这个好戏法为我做了:
NSError *error;
NSString *tekstdata = [items valueForKeyPath:@"Data"];
NSDictionary *JSON =
[NSJSONSerialization JSONObjectWithData: [tekstdata dataUsingEncoding:NSUTF8StringEncoding]
options: NSJSONReadingMutableContainers
error: &error];
items = [JSON valueForKeyPath:@"result.1.listing.duplicates"];
我不得不再次使用序列化,很明显,因为原始JSON中有一个JSON。谢谢您的帮助。你让我朝着正确的方向前进。
答案 0 :(得分:0)
如果我把你的问题理解为评论员提到的一个问题,请将Json剥离,好像它是一个洋葱。
使用此工具查看图层的形成方式, http://jsonviewer.stack.hu/
此外,您可能需要考虑使用NSMutableArray,以便删除和/或重新排列数组。
希望我能够提供帮助。
答案 1 :(得分:0)
为了从嵌套的JSON文件中只获取一些感兴趣的项目,我建议使用AFNetworking库的AFJSONRequestOperation
来解析JSON文件并将结果放入{{1 }}。
然后,您可以使用方法NSDictionary
查询NSDictionary
以检索值。