JSON反序列化的iOS
问题描述:
我想反序列化我正在写的iOS应用程序的JSON字符串。然而,我的应用程序不断挂在我尝试阅读的Feed中的双引号“\”转义序列。什么是快速删除该序列的方法,以便我可以正确解析Feed? (饲料是从服务器端我的Django应用程序来。)JSON反序列化的iOS
这里是我的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.
答
如果你想删除的逃生内蟒:
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工作。
+0
谢谢Guilherme!我找出了问题所在。我的iPhone上的json解析器在我的字符串中的第一个之后的“节点”上窒息。我必须解决这个问题。这是一个非常有用的答案。 –
+0
你正在使用哪个解析器? –
你怎么生产这种饲料? –
这是输出实际的样子吗?或者是一个字符串文字?如果它是一个字符串文字,那么'\'字符实际上并不存在。当字符串打印到控制台时,您只会看到它们。如果他们在那里,那么你的JSON字符串格式不正确。 你也使用类似[JSONkit](https://github.com/johnezang/JSONKit)或只是自己解析JSON? – jacobsimeon
让我知道我的答案是否解决了您的问题。 –