我在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值吗?提前谢谢。
答案 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/