iPhone - JSON解析中的转义字符问题

时间:2011-05-16 07:41:44

标签: iphone objective-c escaping json

我正在使用目标C JSON解析库并面临一些问题。我的Web服务返回JSON响应。当响应字符串中有转义字符时,My Parser失败。以下是我从服务器收到的回复。JSON response from the server

现在,如果你观察这条线 “item_name”:“花费10美元,从吉姆\'sDonutShop获得$ 24worthofdonuts”,有一个逃脱角色吉姆甜甜圈。我的Parser无法解析此异常。

 -JSONValue failed. Error trace is: (
    "Error Domain=org.brautaset.JSON.ErrorDomain Code=8 \"Illegal escape sequence '0x27'\" UserInfo=0x79cc420 {NSLocalizedDescription=Illegal escape sequence '0x27'}",
    "Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object value expected for key: item_name\" UserInfo=0x79cc510 {NSUnderlyingError=0x79cc470 \"Illegal escape sequence '0x27'\", NSLocalizedDescription=Object value expected for key: item_name}",
    "Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object value expected for key: parameters\" UserInfo=0x79cc5c0 {NSUnderlyingError=0x79cc540 \"Object value expected for key: item_name\", NSLocalizedDescription=Object value expected for key: parameters}"

我正在使用的是 JSON.h

NSDictionary * responseDic = [responseString JSONValue];

有人请帮帮我!!谢谢!!

1 个答案:

答案 0 :(得分:5)

转义序列\'无效JSON。见json.org

您应该向Web服务的维护者提出错误。

作为解决方法,您可以尝试使用单个'替换序列,例如

NSString* hackedString = [originalString stringByReplacingOccurrencesOfString: @"\\'" withString: @"'"];