Ios — Парсинг JSON словарь в массиве — objective c


json — Parsing Plain JSON Array в Objective C

Я хочу проанализировать простой массив JSON, например:

Чтобы получить массив в простых массивах строки. Я нашел много сообщений с массивами словарей JSON. Но в этом случае JSON не имеет ключей для значений. Незлая помощь.

    2 4
  • 13 май 2020 2020-05-13 16:13:28
  • Sangram Mohite

4 ответа

Метод NSJSONSerialization JSONObjectWithData:options:error для этого может быть JSONObjectWithData:options:error . Вы получите словарь с одним значением для ключа «ns», а значение будет массивом массивов.

  • 13 май 2020 2020-05-13 16:13:30

  • dasdom

И описание показывает, что вы ищете

  • 13 май 2020 2020-05-13 16:13:29
  • Lithu T.V

Я думаю, это будет полезно для вас.

  • 13 май 2020 2020-05-13 16:13:29
  • Prasad G


Класс NSJSONSerialization может использоваться для преобразования JSON в объекты Foundation и объекты Foundation в JSON. В вашем случае вы должны использовать -JSONObjectWithData:options:error: класса NSJSONSerialization для извлечения объекта Foundation из данных JSON.

Разбор JSON-массив в Objective-C

Мне удалось извлечь следующий массив (который я демпинг на консоли) из некоторого JSON. Как я могу получить и распечатать значения для одного из элементов, то есть задача?

array похоже , что это на самом деле NSDictionary , так что ссылки на ключ , чтобы получить значение для него.

Из журнала, похоже , выход является NSDictionary объектом, поэтому , чтобы получить значение ключа задачи просто сделать это

если вы хотите , чтобы подтвердить только проверить тип класса , используя isKindOfClass: метод

Как разобрать словарь JSON и поместить ключи и значения в отдельные массивы — Objective C

Я пытаюсь разобрать www.fixer.io JSON для получения данных о валюте. У меня возникли проблемы с разбором JSON и попыткой разделить ключи и значения в словаре ставок. Мне нужны они отдельно, поэтому я могу помещать их в массивы для отображения имени валюты (например: USD, EUR, JPN) и их соответствующих ставок.

Я читал, что для этого нужно использовать «allKeys» и «allValues», но до сих пор мне не повезло. Есть идеи?

Создан 28 фев. 17 2020-02-28 04:27:12 Jumpman987

я получить Errr ‘«NSInvalidArgumentException», причина:«данные параметр nil» – Anbu.karthik 28 фев. 17 2020-02-28 04:38:18

Цукерберг рекомендует:  Выскальзывающая панель на CSS

вы можете приложить проект ур – Anbu.karthik 28 фев. 17 2020-02-28 04:44:51


Конечно, хотя я не вижу кнопки для присоединения моего проекта. Как мне это сделать? – Jumpman987 28 фев. 17 2020-02-28 05:03:25

@Matthew Гость ваша проблема решена или нет? – iOS 28 фев. 17 2020-02-28 06:00:17

Как разобрать JSON в приложении iOS

Im получает ответ от twitter в виде строки,

Мне нужно отправить части, где есть комментарий к массиву,

вот пример строки

Так что мне действительно нужны сообщения после «text»:»=

@KristinaKlp saluditos y besos d colores!

Итак, как я могу взять строку и проанализировать ее, чтобы получить все сообщения в массиве?

6 ответов

Я не делал JSON разбора себя в приложении iOS, но вы должны иметь возможность использовать библиотеку, такую как в JSON-структуры. Эта библиотека позволит вам легко анализировать JSON и генерировать json из словарей / массивов (это действительно все, из чего состоит JSON).


JSON сопоставляется с типами Objective-C следующим образом:

  • null — > NSNull
  • строка -> NSString
  • массив -> NSMutableArray

NSJSONSerialization выполняет работу по преобразованию данных JSON в используемые структуры данных как NSDictionary или NSArray очень хорошо. Я рекомендую его, даже больше, потому что он является частью публичного интерфейса Cocoa и поддерживается Apple.

однако, если вы хотите сопоставить содержимое своего JSON с объектами Objective-C, вам придется сопоставить каждый атрибут из NSDictionary/NSArray с вашим свойством object. Это может быть немного больно, если ваши объекты многие атрибуты.

для того, чтобы automatise процесс, я рекомендую вам использовать Мотис категория (персональный проект) на NSObject для его выполнения, поэтому он очень легкий и гибкий. Вы можете прочитать, Как использовать его в этот пост. Но чтобы показать вам, вам просто нужно определить словарь с отображением ваших атрибутов объекта JSON в имена свойств объекта Objective-C в подклассах NSObject:

и затем выполнить разбор делать:

настройка свойств из словаря выполняется с помощью KeyValueCoding (KVC), и вы можете проверить каждый атрибут, прежде чем устанавливать его с помощью проверки KVC.

недавно мне пришлось это сделать. Посмотрев на различные варианты там, я бросил JSONKit в мое приложение (я нашел его в обсуждении JSON на StackOverflow). Почему? А) это очень, очень просто. Я имею в виду, все, что у него есть, это основные функции синтаксического анализа/излучения, что еще вам нужно? Б) это очень, очень быстро. Никаких накладных расходов — просто выполняйте работу.

Я должен отметить, что никогда раньше не делал JSON — только слышал об этом термине и даже не знал, как его произносить. Я ушел от ничего, для рабочего приложения, примерно через 1 час. Вы просто добавить один класс в свое приложение (на .ч. ,m), создайте его экземпляр и вызовите синтаксический анализатор для объекта dictionary. Вот. Если он содержит массив, вы просто получаете objectForKey, приведите его как NSArray. Это действительно трудно получить проще, чем это, и очень быстро.

Цукерберг рекомендует:  Аватар - Кто нарисует аватар по этому типу в ps

для хорошего сравнения скорости различных библиотек для разбора JSON на iOS, взгляните на Сражение.

H Парсинг Json на C# в черновиках Из песочницы


Прикручивая авторизацию с помощью популярных сайтов, столкнулся с проблемой. Согласно стандарту OAuth, ответ от сервера авторизации приходит в формате Json, а в .net удобной функции для его парсинга нет. Существует, конечно, JavaScriptSerializer, но он наследует все проблемы сериализеров. Во-первых, если будет расхождение в названии полей, тогда будут появляться исключения. Во-вторых, чисто лень создавать класс, пусть и содержащий только название полей под каждый ответ. Я подключал 8 систем авторизации, в среднем мне пришлось бы написать по 2-3 класса на каждую. То есть где-то 20 классов. Я уже не говорю о тех, кто делает глубокую интеграцию. Зачем нагромождать код? Ну и, естественно, в вебе особо остро стоит вопрос производительности, а сериализаторы производительностью не блещут. Исходя из всех этих рассуждений я написал довольно простую функцию, которая превращает строку json в словарь типа Dictionary .

Рассмотрим пример json строки полученной от системы Windows LiveId:

Превращается в словарь:

Есть некоторые нюансы. Как видно из примера, вложенные объекты получают префикс родителя. Таким образом, мы получили emails_preferred и emails_account. Если же json будет содержать массив объектов, тогда значения будут разделены символом &.

json — Parsing Plain JSON Array в Objective C

Я хочу проанализировать простой массив JSON, например:

Чтобы получить массив в простых массивах строки. Я нашел много сообщений с массивами словарей JSON. Но в этом случае JSON не имеет ключей для значений. Незлая помощь.

    3 4
  • 13 май 2020 2020-05-13 16:13:28
  • Sangram Mohite


4 ответа

Метод NSJSONSerialization JSONObjectWithData:options:error для этого может быть JSONObjectWithData:options:error . Вы получите словарь с одним значением для ключа «ns», а значение будет массивом массивов.

  • 13 май 2020 2020-05-13 16:13:30
  • dasdom

И описание показывает, что вы ищете

  • 13 май 2020 2020-05-13 16:13:29
  • Lithu T.V


Я думаю, это будет полезно для вас.

  • 13 май 2020 2020-05-13 16:13:29
  • Prasad G

Класс NSJSONSerialization может использоваться для преобразования JSON в объекты Foundation и объекты Foundation в JSON. В вашем случае вы должны использовать -JSONObjectWithData:options:error: класса NSJSONSerialization для извлечения объекта Foundation из данных JSON.

IOS / Objective-C: Преобразование NSArray пользовательских объектов в JSON

На основе принятого ответа на этот ответ , я пытаюсь отправить массив настраиваемых объектов через JSON на сервер.

Однако следующий код для сериализации объектов сбой. Я думаю, это потому, что NSJSONSerialization может принимать только NSDictionary, а не пользовательский объект.

Может ли кто-нибудь предложить способ преобразования массива пользовательских объектов в JSON?

1 ответ

Как вы сказали, NSJSONSerialization понимает только словари и массивы. Вы должны будете предоставить метод в своем пользовательском классе, который преобразует его свойства в словарь, примерно так:


[JSON] Как выполнить парсинг массива в JSON?

Вопрос

rareMax 342

rareMax 342

  • Продвинутый пользователь
  • Пользователи
  • 342
  • 551 сообщение
  • Город Мелитополь
Цукерберг рекомендует:  Галерея изображений в стиле картотеки ролодекс

Необходимо распарсить JSON в котором есть массив. Искал в интернете — но там для сторонних библиотек.

Вот сам объект в котором есть массив:

Вот тут мне надо помощь с парсингом list.

Изменено 15 октября, 2014 пользователем Сысоев Максим

Поделиться сообщением

Ссылка на сообщение
Поделиться на другие сайты

2 ответа на этот вопрос

Рекомендуемые сообщения

Похожий контент

Как убрать поле класса из сериализации через Rest.Json?
Вот как я пробую избавиться от поля Foo:
program Project1; <$APPTYPE CONSOLE> <$R *.res>uses REST.Json, System.JSON.Serializers, System.SysUtils; type TFoo = , E.Message); end; end. Но на выходе все равно есть поле Foo.

Друзья, нашел тут интересную статью, где тестируются разные jSON парсеры.

Ссылка: http://www.webdelphi.ru/2020/10/ishhem-samyj-bystryj-parser-json-v-delphi/
Автор: Владислав Баженов
Описание (26/10/2020):

var JSON: TJSONObject; JSONArray: TJSONArray; i: Integer; begin JSON := TJSONObject.ParseJSONValue(Form2.Memo2.Lines.Text) as TJSONObject; сюда получается я заношу весь код Form2.Memo2.Lines.Clear; JSONArray := TJSONArray(JSON.Get(‘items’).JsonValue); далее изу по массиву итмемов for i := 0 to JSONArray.Size — 1 do begin Form2.Memo2.Lines.Add(TJSONPair(TJSONObject(JSONArray.Get(i)).Get(‘first_name’)).JsonValue.Value); пытаюсь добавить найденное поле end; но летят ошибка критичная (

Получаю с сервера большой JSON, в нем есть поле number. Как получить список в memo состоящий только из номеров? Подскажите пожалуйста..

Я могу совсем что то не правильно делать, хочу получить данные согласно API :

http://glonasssoft.ru/wiki/?wiki_name=API
var jValue:TJSONValue; s,s1:string; begin RestClient1.BaseURL:=’http://dev.glonasssoft.ru/auth/login’; Restrequest1.Execute; jValue:=RESTResponse1.JSONValue; s:=jValue.ToString; s1:= copy(s,pos(‘Auth ; Restrequest2.Params[0].Value:=s1; -здесь параметр типа HttpHeader задан X-Auth в него сую ключ Restrequest2.Execute; — говорит не авторезирован jValue:=RESTResponse2.JSONValue; s:=jValue.ToString; что я не так делаю?

Последние посетители 0 пользователей онлайн

Ни одного зарегистрированного пользователя не просматривает данную страницу

iOS — Как разбирать Json-массив в xcode и сохранять результаты — это строки

Привет, Я пытаюсь проанализировать строку Json как NSArray и сохранить определенные результаты в виде строк для установки разрешений для разных пользователей в моем приложении. Мой текущий код:

accountData is an NSMutableArray created in the .h file. jsonAccount is NSData created by converted an NSString

NSLog out для массива;

Когда я пытаюсь создать жало из одного из результатов и отображать его в журнале, я получаю эту ошибку:

Как сохранить различные ключи в виде строк?

Parsing Plain JSON Array в Objective C

Я хочу проанализировать простой массив JSON, например:

Чтобы получить массив в простых массивах строки. Я нашел много сообщений с массивами словарей JSON. Но в этом случае JSON не имеет ключей для значений. Незлая помощь.

4 Solutions collect form web for “Parsing Plain JSON Array в Objective C”

Ответ: NSJSONSerialization .

Класс NSJSONSerialization может использоваться для преобразования JSON в объекты Foundation и объекты Foundation в JSON. В вашем случае вы должны использовать -JSONObjectWithData:options:error: из класса NSJSONSerialization для извлечения объекта Foundation из данных JSON.

Образец кода :

Метод NSJSONSerialization JSONObjectWithData:options:error для этого может быть JSONObjectWithData:options:error . Вы получите словарь с одним значением для ключа «ns», а значение будет массивом массивов.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих