/ / Як розібрати масив JSON з призначення Javascript за допомогою регулярного вираження в iOS? - javascript, ios, aim-c, regex, json

Як розібрати масив JSON з призначення Javascript за допомогою регулярного вираження в iOS? - javascript, ios, aim-c, regex, json

У мене є наступний стандарт JavascriptЗаява про присвоєння повертається як вихід з форми виклику веб-сервісу. Мені потрібно дістати з нього об’єкт масиву JSON, і мені було цікаво, чи можу я якось використовувати NSRegularExpression для цього.

У мене немає контролю над веб-службою, тому він повинен продовжувати повертати stmt призначення Javacript, як у наведеному нижче фрагменті.

Чи може хтось запропонувати фрагмент коду з об'єктивним кодом, який виконує це завдання? Я можу також отримувати підмасиви та підпорядковані хеші як частину окремих елементів ...

var collection = [
{
"id": "4444",
"name" : "Bill Smith",
"position" : "tester"
},
{
"id": "4444",
"name" : "Bill Smith",
"position" : "tester"
}
];

Відповіді:

0 для відповіді № 1

Ви можете написати щось подібне:

NSArray *myJSONArray = @[
@{
@"id": @"4444",
@"name" : @"Bill Smith",
@"position" : @"tester"
},
@{
@"id": @"4444",
@"name" : @"Bill Smith",
@"position" : @"tester"
}];

0 для відповіді № 2

Ви можете використовувати NSJSONSerialization, щоб взяти NSData зі своїм JSON та проаналізувати його у рідному об'єкті Foundation.

У цьому випадку, якщо ви отримаєте NSData відВи вставили фрагмент JSON, у вас "буде повернутий NSArray, який містить 2 об'єкти NSDictionary. Ось як це можна досягти за допомогою NSJSONSerialization:

[NSJSONSerialization JSONObjectWithData:myData options:NSJSONReadingMutableLeaves error:&error];

Зауважте, що в документації написано:

Дані повинні бути в одній із 5 підтримуванихкодування, перелічені в специфікації JSON: utf-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE. Дані можуть мати або не мати BOM. Найефективніше кодування, що використовується для розбору, - utf-8, тому якщо у вас є вибір у кодуванні даних, переданих цьому методу, використовуйте utf-8.

Тож переконайтеся, що ви отримуєте дані в одному з цих закодованих форматів. Це найшвидший спосіб зробити це, він вбудований в какао і дуже, дуже швидко. Також у вас можуть бути різні варіанти, ніж NSJSONReadingMutableLeaves.

Сподіваюся, це допоможе :)


0 для відповіді № 3

Ну добре. Я не знайшов жодного розумного рішення для цього, тому просто взяв підрядку з усього об’єкта відповіді, щоб витягнути весь вміст між першим і останнім {} або першим і останнім []. Працює так само добре.