#iphone #json
#iPhone #json
Вопрос:
Кто-нибудь может помочь мне проанализировать эти сложные вложенные данные json?
Я работаю с iPhone Xcode 4.3 и objective-c. пожалуйста, предоставьте небольшую демонстрацию.
{"html_attributions" : [],
"results" : [
{
"geometry" : {
"location" : {
"lat" : 61.1820430,
"lng" : -149.8003850
}
},
"icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
"id" : "207c77fb1258ef8cb22abe391c4924850a1ac045",
"name" : "Alaska Native Medical Center Rad",
"reference" : "CoQBdwAAAG5xNU-hb4BzNd-9H8IcLHcnz8txVe2j00HjRmjInS6uYt0j4qnAhOU_FNkHSSjvZd47dVu8Vk8Vj2iuu0NDDDa3tkCK-yHbUaj1Wrg5DNFvPmou1jvsjUE6gRKUAHXXemRJTNgtDfvhnS5kNdS0c71r9Df2S_Yvu0m92z62D0TZEhACm7dSGWKcpfZ_H-zTi5BzGhRCM22q0rCD6vjD3keZfBELfn_VsA",
"types" : [ "hospital", "health", "establishment" ],
"vicinity" : "4315 Diplomacy Drive, Anchorage"
}
],
"status" : "OK"
}
Комментарии:
1. Какой язык вы используете для его декодирования?
Ответ №1:
Для такого рода сложной строки JSON вы не можете использовать фреймовую работу Google в формате JSON.Но чтобы присвоить эту строку NSDictionary, вам потребуется эта работа с фреймом. Итак, сначала добавьте эту структуру в свой проект.Затем добавьте файл JSON.h в свой файл .m. А затем используйте assign этой строки следующим образом: NSDictionary *dic = [jsonString JSONValues]; После этой строки вы получите все значения вашей строки в трех ключах. Первый ключ — «html_attributions», второй ключ — «результат», а третий ключ — «статус». Для доступа к внутренним значениям вашего второго ключа вы должны присвоить его другой переменной NSDictionary или NSArray.И используйте ключ для доступа к значениям.
Это будет работать только для вышеупомянутой строки JSON.
Комментарии:
1. Привет, старк …. спасибо за помощь, это работа, но я хотел бы сказать вам кое-что, что мне не нужно передавать «html_attributions» в качестве ключа. Мы можем напрямую использовать результат в качестве ключа, и он отлично работает. Еще раз спасибо.
2. Если это было полезно, пожалуйста, дайте оценки.
Ответ №2:
Существует библиотека objective-c под названием JSONKit, которая работает довольно хорошо. Это даст вам NSArray или NSDictionary, из которых вы можете затем извлечь свои данные.
https://github.com/johnezang/JSONKit
Это так же просто, как сделать это:
NSDictionary *unserializedData = [jsonString objectFromJSONString];
где jsonString — это ваши данные json сверху, которые вы хотите проанализировать в NSString.
Ответ №3:
Почему вы не используете фреймворк для этой работы?
Вы можете попробовать json-framework (ранее SBJSon).
Страница проекта: https://github.com/stig/json-framework
Ответ №4:
Если вы используете iPhone, вы можете использовать различные библиотеки JSON для превращения строк JSON в объекты NSDictionary и NSArray
JSON Kit — это очень быстрая и легкая библиотека, которую вы можете использовать: https://github.com/johnezang/JSONKit
Или есть JSON-framework: http://code.google.com/p/json-framework /
Кроме того, для устройств iOS 5 Apple включила собственный десериализатор JSON. Взгляните на класс NSJSONSerialization