如何解析从 Web 服务响应收到的 JSON 响应
Posted
技术标签:
【中文标题】如何解析从 Web 服务响应收到的 JSON 响应【英文标题】:How to parse JSON response received from a Webservice Response 【发布时间】:2014-09-11 14:44:05 【问题描述】:我已从 WebService 获得此响应
"d":""token":"b502645e-837f-4237-a6ff-d4323f2799dd","timestamp":"09/11/20147:46:43PM""
我想解析这个字符串,这样我就可以得到如下输出: 令牌 = b502645e-837f-4237-a6ff-d4323f2799dd 时间戳 = 09/11/20147:46:43PM 这样我就可以将它存储到数据库中。
这是我的代码
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
// The request is complete and data has been received
// You can parse the stuff in your instance variable now
/*
NSError *errorJson=nil;
NSString* OuterDict = [NSJSONSerialization JSONObjectWithData:receivedData options:kNilOptions error:&errorJson];
NSLog(@"Outer Dictionary %@",OuterDict);
*/
NSString *responseData = [[NSString alloc]initWithData:receivedData encoding:NSUTF8StringEncoding];
responseData = [responseData stringByReplacingOccurrencesOfString:@" " withString:@""];
responseData = [responseData stringByReplacingOccurrencesOfString:@"\\" withString:@""];
//NSString* encodedString = [responseData stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//NSLog(@"%@",encodedString);
NSLog(@"Reponse data %@",responseData);
NSError *errorJson=nil;
NSData *jsonData = [responseData dataUsingEncoding:NSUTF8StringEncoding];
jsonData = [jsonData subdataWithRange:NSMakeRange(0, [jsonData length] - 1)];
NSDictionary* OuterDict = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&errorJson];
NSLog(@"Outer Dict %@",OuterDict);
我得到null
作为输出:
Outer Dict (null)
任何人都可以帮我解决这个问题。 提前致谢。
【问题讨论】:
你的 JSON 看起来很奇怪......它似乎不正确。对我来说,它有两个错误的"
(一个在
之前,另一个在"
之后)。
How can you deserialize an escaped JSON string with NSJSONSerialization?的可能重复
谢谢拉尔姆,您的评论帮了大忙……实际上救了我。
【参考方案1】:
在方法的顶部使用以下 sn-ps。它将解析您的 JSON 数据并返回字典。您可以根据需要对 Dictionary 进行任何操作。
NSDictionary *dictResponse = [NSJSONSerialization JSONObjectWithData:receivedData options:NSJSONReadingAllowFragments error:&err];
NSLog(@"Response : %@", dictResponse);
编码愉快:)
【讨论】:
以上是关于如何解析从 Web 服务响应收到的 JSON 响应的主要内容,如果未能解决你的问题,请参考以下文章
解析从 android onMessageReceived 上的 fcm 响应获得的 json
Mechanize Rails - Web Scraping - 服务器使用JSON进行响应 - 如何将URL解析为下载CSV