尝试解析xcode中的json数据时遇到了一个大问题。我实际上尝试了两个不同的解析器,它仍然返回一个错误的json。有人可以提供帮助吗?
要解析的字符串(称为jsonResp)等于:
{
"error":false,
"errorMessage":null,
"debugMessage":null,
"count":1,
"list":"links",
"data":[
{
"date":"Jeudi \u00e0 00:00:00",
"type":"friend",
"picture":"http://graph.facebook.com/22222222/picture? type=square",
"name":"Etouda Gaudo",
"ink_id":"1",
"chat_id":"1",
"count":"1",
"last_message":"CoUcou"
}
]
}
要解析的字符串等于:
NSData *jsonData = [jsonResp dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error];
NSLog(@"dictionary %@", dictionary);
然后我得到了字典的NSLog的以下结果:
dictionary {
count = 1;
data = (
{
"chat_id" = 1;
count = 1;
date = "Jeudi \U00e0 00:00:00";
"ink_id" = 1;
"last_message" = CoUcou;
name = "Test name";
picture = "http://graph.facebook.com/22222222/picture?type=square";
type = friend;
}
);
debugMessage = "<null>";
error = 0;
errorMessage = "<null>";
list = links;
}
我无法弄清楚为什么“失踪...... 有没有人有解决方案。
提前致谢。
答案 0 :(得分:2)
您正在将JSON反序列化为NSDictionary,与JSON不同,它不必在其属性名称周围加引号。您的解析器工作正常,但NSDictionary的NSLog将不会显示与原始JSON完全相同。
答案 1 :(得分:2)
NSLog只是供开发人员查看的打印表示,它是在类实例上调用description
方法的结果。仅在项目可能雄心勃勃而没有它们的情况下添加引号,例如具有嵌入空间的字符串。要验证是否正确解析了JSON,请使用代码验证它。