如何解析从 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

如何从服务器响应中解析 json?

如何在 Ios 中解析 Web 服务的响应?

如何检查从服务器收到的响应是 html 还是 json 并在 extjs 中按名称查找 html 表单?

解析来自 .Net Web 服务的 JSON 响应