2011-12-12 7 views
5

estoy tratando de analizar una matriz JSON devuelto por una web API REST que se ve similar a lo siguiente (utilizando JSONKit):Analizando JSON Array en iOS con JSONKit - array sin etiqueta para ObjectForKey?

[ { "DateCreated" : "/Date(1320296400000)/", 
    "ID" : 1, 
    "Summary" : "Summary 1", 
    "Title" : "Title 1", 
    "URL" : "URL 1" 
    }, 
    { "DateCreated" : "/Date(1320296400000)/", 
    "ID" : 2, 
    "Summary" : "Summary 2", 
    "Title" : "Title 2", 
    "URL" : "URL 2" 
    } 
] 

El JSON He trabajado con el pasado por lo general tenían un elemento padre, por news:{{node1},{node2}} ejemplo, que me permitiría extraer ese nodo de la respuesta JSON, como esto:

NSString *response = [request responseString]; 
NSDictionary *deserializedData = [response objectFromJSONString]; 
NSArray *arrNews = [deserializedData objectForKey:@"news"]; 

En mi JSON, no existe tal nodo, es simplemente una matriz prima. ¿Cómo hago para llevar esto a un NSArray (o algo que pueda enganchar en un UITableView)?

Respuesta

10

Desde el aspecto de sus datos JSON, parece que su deserializedData ya debería ser un JKArray lleno de JKDictionary objetos.

¿Has intentado acceder a él como una matriz?

for (NSDictionary * dataDict in deserializedData) { 
    NSString * timeStamp = [dataDict objectForKey:@"DateCreated"]; 
    // and so on 
} 

Esto debería recorrer cada elemento en los datos JSON.

+0

Entonces, ¿cómo sabes que le interesa el elemento de la matriz 0? –

+0

Actualicé mi respuesta para que no se acceda a ningún índice específico, evitando la confusión de 0. –

1

Una cadena JSON legal puede tener, como su "contenedor" externo, una matriz o un diccionario/"objeto". El JSON en su muestra tiene una matriz como el "contenedor" externo. Perfectamente de fiar.

Si no sabe qué esperar, debe probar el objeto para ver cuál es.