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
}