我已经在我的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.}
答案 0 :(得分:0)
我认为问题来自XML的转换< - > JSON。
在XML中,回车符和换行符是有效字符(主要是忽略<p>
和<br/>
)。在JSON中,回车符/换行符应由\n
(或适当的系统)
我不确定这是否会有所帮助,但在序列化之前,请尝试使用\n
替换字符串中的所有\\n
。