如何在ios中将收到的字符串解析为json

时间:2014-10-17 11:34:10

标签: ios json

我已经在我的ios应用程序中实现了XMPP,只要有人发送消息它接收到xml数据并且我从该xml获取消息并制作该字符串。

NSString *body = [[message elementForName:@"body"] stringValue];

现在* body包含json字符串,并且我正在使用此行将此字符串解析为json对象

NSData *data = [body dataUsingEncoding:NSUTF8StringEncoding];
// messageJSON is NSDictionary
messageJSON=[NSJSONSerialization JSONObjectWithData:data options:0 error:&error];

它在正常文本的条件下运行良好,但每当有人在消息中间发送新行时它会给出null请解决我的问题..: - (

提前致谢

输出

{"message":{"msg_type":"chat_success","msg_content":{"chat_id":"2","chat_message":"@34%*:%:%;%





Fjfjfjj","sender_id":"24","chat_date_time":"1413538998"}}

ERROR

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Unescaped control character around character 94.) UserInfo=0x7fdf81c3a790 {NSDebugDescription=Unescaped control character around character 94.}

1 个答案:

答案 0 :(得分:0)

我认为问题来自XML的转换< - > JSON。

在XML中,回车符和换行符是有效字符(主要是忽略<p><br/>)。在JSON中,回车符/换行符应由\n(或适当的系统)

表示

我不确定这是否会有所帮助,但在序列化之前,请尝试使用\n替换字符串中的所有\\n