Разберите 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
}

}

Как я могу получить "Форнавн", "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. Спасибо за помощь. Вы ставите меня в правильном направлении.

2 ответа

Если я понимаю ваш вопрос как один из упомянутых комментаторов, очистите Json, как если бы он был inion.

Используйте этот инструмент, чтобы увидеть, как формируются слои, http://jsonviewer.stack.hu/

Кроме того, вы можете захотеть использовать NSMutableArray, чтобы вы могли удалить и/или переустановить массив.

Надеюсь, я смог помочь.


Чтобы получить только несколько интересных элементов из вложенного файла JSON, я бы предложил использовать AFNetworking library AFJSONRequestOperation для анализа файла JSON и поместить результаты в NSDictionary. Затем вы можете запросить NSDictionary с помощью метода [myDictionary objectForKey:@"Fornavn"] для получения значения.

licensed under cc by-sa 3.0 with attribution.