NSDictionary заполнен данными JSON

Я вызываю URL, который возвращает мне JSON (я использую JSONKit). Я конвертирую его в строку NSString следующим образом:

[{"name":"aaaaaa","id":41},{"name":"as","id":23},...

И так далее. Я хочу заполнить UIPickerView только частью имени JSON. Но когда пользователь выбирает имя, мне нужен параметр "id", поэтому я решил заполнить NSDictionary JSON (setValue:id для key:name), чтобы я мог получить значение, выбранное пользователем, и получить идентификатор из словаря. Как я могу заполнить массив только "имя" JSON?

Я немного потерян с библиотекой JSONKit, какое-нибудь руководство? Спасибо.

1 ответ

Решение

Прежде всего, я не думаю, что это хорошая идея иметь name как ключ в словаре, так как вы можете иметь много одинаковых имен. Я бы пошел на id в качестве ключа.

Теперь, что вы могли бы сделать:

NSString *myJson; //Suppose that this is the json you have fetched from the url
id jsonObject = [myJson objectFromJSONString];
// Now you have an array of dictionaries 
// each one having 2 key/value pairs (name/id)

NSArray *names = [jsonObject valueForKeyPath:@"name"];
NSArray *ids = [jsonObject valueForKeyPath:@"id"];

// Now you have two parallel arrays with names / ids

Или вы можете просто выполнить итерацию вашего объекта json и обработать данные самостоятельно:

for (id obj in jsonObject)
{
  NSString *name = [obj valueForKey:@"name"];
  NSNumber *id = [obj valueForKey:@"id"];
  // Do whatever you like with these
}
Другие вопросы по тегам