2013-07-29 12 views
0

我有一个来自电话簿服务的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 
} 

}

我怎样才能得到 “Fornavn”, “Etternavn” 和 “tlfnr” 出的这一个NSArray一个不错的方式?

内容看起来不像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

以下是该文件的链接:https://www.dropbox.com/s/adxvoajfc9etpx0/content%20of%20data.txt –

+0

是这样的: '2013-07-29 22:47:43 .408 Uni24 Ordre [2032:c07]数组:{...' 部分数据?它看起来像你有JSON数据可能有额外的东西,不是JSON ... –

+0

这看起来像“嵌套的JSON”。比较http://stackoverflow.com/questions/17283141/cannot-parsing-json-to-nsdictionary。 –

回答

0

如果我理解你提出的评论者之一的问题,请将Json剥离,就好像它是一个洋葱。

使用该工具,看看如何形成层, http://jsonviewer.stack.hu/

而且,你可能要考虑使用的NSMutableArray这样你可以删除和/或重新安排阵列。

希望我能够提供帮助。

+0

是的。剥皮很棒。但是我发现了一种用NSJSONSerialization一次性剥离洋葱的方法(很明显,因为在json中有一个“json”)。 –

0

为了让她们感兴趣的几个项目进行嵌套的JSON文件,我会用AFNetworking库的AFJSONRequestOperation解析JSON文件,并把结果放到一个NSDictionary建议。 然后,您可以使用方法[myDictionary objectForKey:@"Fornavn"]查询NSDictionary以检索该值。