Как проанализировать эти сложные (вложенные) данные json?

#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

https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html