2014-12-11 3 views
-3

У меня есть этот JSon данные:получить значение в формате JSON прошивкой

{ 
"aviao": [ 
{ 
    "ID": "1", 
    "NOME": "ART580", 
    "LOGO": null, 
    "NOMECOMPAINHA": "TACV", 
    "CAPACIDADE": "250", 
    "DATE_LOG": "2013-12-10 17:02:34", 
    "vooses": [ 
    { 
     "ID": "1", 
     "CODIGO": "V534PS", 
     "ID_ROTA": "1", 
     "ID_AVIAO": "1", 
     "AEROPORTOPARTIDA": "1", 
     "AEROPORTOCHEGADA": "2", 
     "DATAPARTIDA": "2013-08-08", 
     "DATACHEGADA": "2013-08-09", 
     "HORAPARTIDA": "23:45:00", 
     "HORACHEGADA": "02:20:00", 
     "TIPOVOO": "Nacional", 
     "ESTADO": "0", 
     "DATE_LOG": "2013-12-10 17:02:47" 
    }, 
    { 

видеть, что в атрибуте vooses У меня есть другие атрибуты, но я не знаю, как получить их.

Помогите пожалуйста?

+1

Покажите свой соответствующий код. что ты уже испробовал? – rmaddy

+0

Сначала перейдите на json.org и изучите синтаксис JSON. Для изучения требуется всего 5-10 минут. Затем изучите документацию iOS для NSDictionary и NSArray. Затем найдите несколько уроков или примеров и изучите их. Тогда попытка написать что-то возвращается к нам, если у вас проблемы с тем, что вы написали. JSON это сложно, потому что люди пытаются использовать его, не потрудившись понять, что они делают. –

ответ

0
NSDictionary *jsonDict; // Your current dict from your json. 
NSArray *aviaos = [jsonDict valueForKey:@"aviao"]; // This array has a dictionary. Or maybe more 
NSDictionary *dictionary = [aviaos firstObject]; 
NSArray *vooses = [dictionary valueForKey:@"vooses"]; 
// Vooses is an array of dictionaries 
for (NSDictionary *dict in vooses) 
{ 
    // You don`t know keys:first ask for them 
    NSArray *keysInDictObject = [dict allKeys]; 
    for (NSString *key in keysInDictObject) 
    { 
     NSLog(@"Do you want with this key %@",key); 
    } 
} 
+0

Большое спасибо ... только то, что мне нужно! В этом случае он захватывает только первый объект, и если я хочу, чтобы он улавливал форму индекса (i). как это должно быть?? –

1

Вам необходимо перебрать этот массив и получить каждое значение для себя.

var myArray = yourJSON from "vooses" as NSArray 

func myStuff (myCollection) { 
    for item in myCollection { 
    ID = myCollection["ID"] as NSString (assuming a String here) 
    CODIGO = myCollection["CODIGO"] as NSString 
    ... 
    ... 

var singleVooses:Object = Object() 
singleVooses.ID = ID 
singleVooses.CODIGO = CODIGO 
... 
... 


myObjects.append(singleVooses) 
} 

называют этот метод везде, где вы хотите, и после этого вы можете использовать myObjects массив для заполнения TableView или что-то еще

+1

Это скорее комментарий, чем полезный ответ. Предоставьте более подробную информацию и покажите код, чтобы сделать это хорошим ответом. – rmaddy

+0

Вопрос помечен Целью-C. Ответы должны быть в Objective-C. – rmaddy

0

Просто имейте в виду следующее:

  1. Объект ({}) является эквивалентом NSDictionary
  2. Array ([]) - это equiva lent to NSArray

Как только вы знаете, что очень легко разобрать любую структуру JSON.

пример:

NSArray *aviao = json[@"aviao"];//note json is NSDictionary 
NSArray *vooses = aviao[0]["vooses"]; 

for (NSDictionary *voose in vooses) 
{ 
    NSLog(@"Voose ID = %@",voose["ID"]); 
} 
0

Если предположить, что данные JSon содержится в NSString (originalJsonString), разобрать его в NSArray, как это:

// Convert json string to an array 
NSData * jsonData = [originalJsonString dataUsingEncoding:NSUTF8StringEncoding]; 
NSError * error=nil; 
NSArray *parsedJson=nil; 
if (jsonData) 
{ 
    parsedJson = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; 
} 

if (!error && parsedJson) 
{ 
    // Use your new array 
} 
Смежные вопросы