解析具有“不可读”内容的JSON

时间:2013-07-29 20:56:16

标签: ios objective-c json

我有一个电话本服务的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。谢谢您的帮助。你让我朝着正确的方向前进。

2 个答案:

答案 0 :(得分:0)

如果我把你的问题理解为评论员提到的一个问题,请将Json剥离,好像它是一个洋葱。

使用此工具查看图层的形成方式, http://jsonviewer.stack.hu/

此外,您可能需要考虑使用NSMutableArray,以便删除和/或重新排列数组。

希望我能够提供帮助。

答案 1 :(得分:0)

为了从嵌套的JSON文件中只获取一些感兴趣的项目,我建议使用AFNetworking库的AFJSONRequestOperation来解析JSON文件并将结果放入{{1 }}。 然后,您可以使用方法NSDictionary查询NSDictionary以检索值。