2013-07-26 46 views
1

显示信息,我有一个URL请求,在这种格式返回一个JSON字符串:的NSData - > JSON - >的NSArray和UITableView的

{ 
"code": 1, "data": [ 
{ 
"city": "Trier", 
"distance": 6, 
"id": "1", 
"image": "1_51af0b6a7ce86.png", "lat": "49.750893", 
"long": "6.622419", 
"name": "A1 Trier", 
"street": "Über Brücken 4", 
"zip": "54294" 
}, { 
} ] 
} 
"city": "Trier", 
    "distance": 7, 
    "id": "2", 
    "image": "nologo.png", "lat": "49.757984", 
    "long": "6.640876", "name": "Safari Haus Trier", "street": "Stockplatz 2a", "zip": "54294" 

现在我需要一个NSData然后NSArrayNSDictionary保存这些信息吧?我想在桌面视图中显示来自JSON的数据。在每个单元格中应该是俱乐部的名称,地点和距离。我怎样才能做到这一点?在第一个单元格中应该是第一个俱乐部和名称等等,而在第二个单元格中是第二个俱乐部。

如何拆分这个JSON字符串?

+1

创建字符串的JSON对象并检索“数据”键的数组。然后将该数组对象一个接一个地保存到具有唯一数据标识符的mutabledictionary中,并在tableviewforcell数据中获取该数据。 –

+0

你能举个例子吗?因为我在json和nsdata中真的很新。 –

回答

1

参考此链接:

Parsing JSON in Objective-C using NSJSONSerialization

正如上面的链接提到的,你可以使用NSJSONSerialization如下解析JSON :

STEP-1:转换您JSON字符串(说jsonString)至NSData的

NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding]; 

STEP-2:序列化JSON成

NSError *jsonParsingError = nil; 
NSArray *responseArray = [NSJSONSerialization JSONObjectWithData:response 
options:0 error:&jsonParsingError]; 

STEP-3的NSArray

的数据:在你 cellForRowAtIndexPath:的tableview委托方法,为tableview创建一个自定义单元,其中有三个显示俱乐部名称(比如说 lblName),俱乐部距离(比如 lblDistance)和俱乐部地点(比如 lblPlace)的标签。一旦你完成了这一点,你可以操纵数组中的数据并将其显示在tableview中

让我知道你是否需要更多的帮助。

+0

我已经像你一样,但应用程序崩溃。我得到错误[__NSDictionaryM dataUsingEncoding:]:无法识别的选择器发送到实例0xa140d90 。错误发生在第1步。这是我的代码NSData * data = [jsonstringgetclubs dataUsingEncoding:NSUTF8StringEncoding]; –

+0

我发现了错误。它应该是一个Nsdictionary而不是一个数组。但知道我只能读“数据”。例如,我不能仅显示距离。只有洞信息块 –

+0

我明白了。我这样做,现在它工作。 NSLog(@“res%@”,[[[responseArray objectForKey:@“data”] objectAtIndex:1] objectForKey:@“city”]); –

0

尝试使用JSON工具包进行JSON解析。

你可以找到JSONKit here

看这example

+0

我需要他们的帐户和密钥。没有json套件是不可能的?只有iOS 6的功能? –

+0

这只是一个例子。尝试使用你的json字符串解析。使用jsonkit函数。 –