2014-08-28 56 views
-2

我开会分析JSON的问题,我有一个JSON这样的:的iOS分析特定JSON

{ 
    "id": 0, 
    "message": "ok" 
} 

我试过几件事情要想方设法把“ID”的值,“消息” ,但我一直有一个错误..

我该怎么做,请选择“ID”和“消息”的价值?

(我得到了我JSONNSMutableArray结果)

编辑

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; 

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

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

NSMutableArray *sortedArray = [NSMutableArray arrayWithArray:publicTimeline.allKeys]; 
[sortedArray sortUsingSelector:@selector(localizedStandardCompare:)]; 
return sortedArray; 
+5

您提供的JSON格式为“NSDictionary”。解析JSON到'NSDictionary'并使用'[responseDictionary valueForKey:@“message”]' – Akhilrajtr 2014-08-28 12:10:53

+0

你能显示你的代码吗? – Bhupesh 2014-08-28 12:12:18

+0

我使用它来执行web服务并获取jSON: 我编辑了我的帖子。 – deveLost 2014-08-28 12:13:41

回答

1

您的JSON字符串表示字典。所以你必须使用NSDictionary而不是NSArray

编辑我

// convert dictionary into JSON 
NSDictionary *fromDict = @{@"id": @(0), @"message": @"ok"}; 
NSData *JSONData = [NSJSONSerialization dataWithJSONObject:fromDict options:0 error:nil]; 

// convert data (like you get from an API request) to dictionary 
NSDictionary *toDict = [NSJSONSerialization JSONObjectWithData:JSONData options:0 error:nil]; 
+0

我试图将我的NSMutableArray转换为NSData,但是,日志显示我为空“id”和消息:/ – deveLost 2014-08-28 12:20:03

+0

@develost您不需要将任何内容转换为NSData,并且您的代码中的数组只是将键从字典中。当所有的答案都向你展示时,你可以直接从字典中得到两个值,由JSON解析器返回 – Paulw11 2014-08-28 12:26:32

+0

好吧,我明白了我的错误......谢谢! – deveLost 2014-08-28 12:27:48

1

试试这个,

解析JSON响应NSDictionary

NSDictionary * responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 
NSString *message = [responseDictionary valueForKey:@"message"]; 
0

我认为它有助于你(在此响应你得到第一字典和词典包含两个key.so)

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; 

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

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

NSString *message = [publicTimeline valueForKey:@"message"]; 

我认为它有用的链接您。 json parser

+0

它不是一个NSMutableDictionary。 – 2014-08-28 12:25:55

+0

NSJSONSerialization(无选项)返回的是NSDictionary,而不是NSMutableDictionary。你不能像使用NSMutableDictionary一样使用NSDictionary。 – 2014-08-28 12:39:01