2011-12-12 44 views
5

我试图解析由一个RESTful网络API,看起来类同以下(使用JSONKit)返回的JSON数组:使用JSONKit解析iOS中的JSON数组 - 具有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" 
    } 
] 

我已经与过去的工作的JSON通常有一个父元素,用于例如news:{{node1},{node2}},这将允许我从JSON响应中提取该节点,这样的:

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

以我JSON,没有这样的节点存在,它是一个简单的生阵列。我如何去把它拉进NSArray(或者我可以挂钩到UITableView中)?

回答

10

从你的JSON数据的外观上来看,它看起来像你的deserializedData应该已经是一个JKArray充满JKDictionary对象。

你有没有试过像数组访问它?

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

这应该循环浏览JSON数据中的每个元素。

+0

那么你怎么知道他感兴趣的数组元素0? –

+0

我更新了我的答案,因此没有具体的索引被接受,避免了0混淆。 –

1

合法的JSON字符串可以拥有一个数组或字典/“对象”作为其外部“容器”。你的示例中的JSON有一个数组作为外部“容器”。完全合法。

如果你不知道哪一个期望你必须测试该对象,看看它是哪个。