适用于iOS的JSON反序列化

时间:2011-11-04 20:44:35

标签: ios django json serialization deserialization

我正在尝试为我正在编写的iOS应用程序反序列化JSON字符串。但是,我的应用程序一直挂在我试图阅读的Feed中双引号的“\”转义序列中。什么是删除序列的快速方法,以便我可以正确解析Feed? (提要来自我在服务器端的Django应用程序。)

这是我的json字符串:

[{\"pk\": 4161, \"model\": \"news.article\", \"fields\": {\"date_live\": \"2011-11-03 00:00:01\", \"date_added\": \"2011-11-03 03:10:59\", \"date_modified\": \"2011-11-03 03:10:59\", \"slug\": \"thursday-feature-backup-comic\", \"title\": \"THURSDAY FEATURE --> Backup Comic\"}}

你会注意到我的所有“节点”都有引号的“\”转义序列。有什么想法吗?

提前感谢您的帮助。

L,

1 个答案:

答案 0 :(得分:1)

如果你试图删除python中的转义:

import re, json
myjson = re.sub(r"\\", "", "[{\"pk\": 4161, \"model\": \"news.article\", \"fields\": {\"date_live\": \"2011-11-03 00:00:01\", \"date_added\": \"2011-11-03 03:10:59\", \"date_modified\": \"2011-11-03 03:10:59\", \"slug\": \"thursday-feature-backup-comic\", \"title\": \"THURSDAY FEATURE --> Backup Comic\"}}]")
myjson = json.loads(myjson) # will decode json

但是如果你想从javascript中删除转义:

myjson = "[{\"pk\": 4161, \"model\": \"news.article\", \"fields\": {\"date_live\": \"2011-11-03 00:00:01\", \"date_added\": \"2011-11-03 03:10:59\", \"date_modified\": \"2011-11-03 03:10:59\", \"slug\": \"thursday-feature-backup-comic\", \"title\": \"THURSDAY FEATURE --> Backup Comic\"}}]";
myjson = eval(myjson.replace(/\\/, "")); // will encode json

注意:您忘记了字符串末尾的]。至少我在尝试评估时遇到了错误。我把]放在最后,eval工作了。