2015-05-06 2 views
1

Я пытаюсь правильно настроить элементы в Json Output, и я приближаюсь, но я полагаю, что я прост и понятен.Parsing Json Правильно вывести

My Json выглядит так с событием верхнего уровня.

JSON SNIPPET ОБНОВЛЕНО

chat =  (
      (
        { 
      Key = senderId; 
      Value =     { 
       Type = 0; 
       Value = "eu-west-1:91afbc3f-890a-4160-8903-688bf0e9efe8"; 
      }; 
     }, 
        { 
      Key = chatId; 
      Value =     { 
       Type = 0; 
       Value = "eu-west-1:be6457ce-bac1-412d-9307-e375e52e22ff"; 
      }; 
     }, 
        { 
      Key = timestamp; 
      Value =     { 
       Type = 1; 
       Value = 1430431197; 
      }; 
     }, 

//Continued 

Я нацеливание этого уровня, используя

NSArray *chat = array[@"chat"]; 

for (NSDictionary *theCourse in chat) 
{ 
    NSLog(@"---- %@", theCourse); 

    // I tried the following to target the values 
    //NSLog(@"chatId: %@", [theCourse valueForKey:@"Key"]); 
    //NSLog(@"timestamp: %@", theCourse[@"senderId"]); 
} 
} 

Мне нужно анализировать данные значения для каждого ключа, который, если я использую массив будет делать, как [theCourse valueForKey:@"Key"] но я думаю, что я не пойду достаточно глубоко?

Как и следовало ожидать, [theCourse valueForKey:@"Key"] дает мне значения ключа, но мне нужны ассоциированные значения этих ключей.

+0

Это не похоже, что чат - это набор словарей. Это похоже на массив массивов словарей. – gnasher729

ответ

1

Вы можете создать легкий словарь:

NSArray *chat = array[@"chat"][0]; 
NSMutableDictionary* newDict = [NSMutableDictionary dictionary]; 
for (NSDictionary* d in chat) 
    [newDict setValue:d[@"Value"][@"Value"] forKey:d[@"Key"]]; 

Теперь вы можете использовать newDict.

NSLog(@"chatId: %@", [newDict valueForKey:@"chatId"]); 
+0

Я думаю, что я вижу, что вы пытаетесь сделать, но он создает объект '__NSArrayM objectForKeyedSubscript:]: непризнанный селектор, отправленный на ошибку экземпляра – memyselfandmyiphone

+0

Можете ли вы показать оригинальный JSON? – jjv360

+0

Cheers. Обновлено выше – memyselfandmyiphone