解析iphone中的字符串json值?

时间:2012-07-04 10:27:35

标签: iphone ios json parsing nsstring

我在NSString中有JSon值。我试图解析NSString JSonValue中的值。

NSString值如:

result =  [{"no":"01","send":"2010-05-03 01:26:48","from":"0000000000","to":"1111111111","text":"abcd"}]

我已尝试使用以下代码来解析值no,send,from,to,text。

    NSString *jsonString = result;
    NSDictionary *jsonArray = [jsonString jsonValue]; //Am trying to save the values from NSString to NSDictionary the app getting crash here.
    NSLog(@"JsonDic : %@", jsonArray);

任何人都可以帮助解析NSString中的JSon值吗?提前谢谢。

3 个答案:

答案 0 :(得分:1)

对于iOS5,您可以使用NSJSONSerialization

NSError *error;
NSString *json = @"[{\"no\":\"01\",\"send\":\"2010-05-03 01:26:48\",\"from\":\"0000000000\",\"to\":\"1111111111\",\"text\":\"abcd\"}]";
id jsonObj = [NSJSONSerialization JSONObjectWithData:[json dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:&error];

您还可以使用SBJson

答案 1 :(得分:0)

戈皮纳特。我提到过代码请试试这个。我测试过我可以得到否。

SBJSON *parser = [[SBJSON alloc] init];  

NSDictionary *jsonArray = (NSDictionary *) [parser objectWithString:result error:nil];  
NSLog(@"jsonArray : %@", jsonArray);

NSArray *depositArray = [jsonArray valueForKey:@"no"];
NSLog(@"depositArray : %@", depositArray);

如果您遇到任何问题,请测试并告诉我。感谢。

答案 2 :(得分:0)

解析JSON有点复杂。

就我而言,我使用SBJSON,你可以从这里下载:http://stig.github.com/json-framework/

这是一个放在项目中的简单文件集。我建议加入一个专门小组。

完成后,您可以使用以下代码:

NSError *jsonError;
NSDictionary *jsonResults;

SBJsonParser* parser = [[SBJsonParser alloc]init];
jsonResults = [parser objectWithString:YOURSTRING error:&jsonError ];

if (jsonResults == nil) {
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:[NSString stringWithFormat:@"Something bad happened with JSON : %@ : %@",YOURSTRING,[ jsonError localizedDescription ]] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alertView show];
    [alertView release];
} else {   
   NSLog(@"JSON result : %@",jsonResults);

}

如果您需要更多信息,可以在SBJSon上找到很好的教程,例如:http://www.touch-code-magazine.com/tutorial-fetch-and-parse-json/