我有一个iOS应用程序需要处理来自Web服务的响应。响应是一个包含序列化JSON对象的序列化JSON字符串,类似于这样:
"{ \"name\" : \"Bob\", \"age\" : 21 }"
请注意,这个响应是一个JSON字符串,而不是一个JSON对象。我需要做的是将该字符串反序列化,以便得到如下结果:
{ "name" : "Bob", "age" : 21 }
然后我可以使用+[NSJSONSerialization JSONObjectWithData:options:error:]
将其反序列化为NSDictionary
。
但是,首先我该如何做呢?也就是说,我该如何“取消转义”字符串,以便获得序列化的JSON对象?如果顶级对象是一个数组或字典,+[NSJSONSerialization JSONObjectWithData:options:error:]
才适用;它不能处理字符串。
我最终编写了自己的JSON字符串解析器,希望符合RFC 4627第2.5节。但我怀疑我可能忽略了一些使用NSJSONSerialization
或其他可用方法的简单方法。
\"
替换为"
。 - user529758\uXXXX
转义序列使得简单的查找和替换变得困难。 - Kristopher Johnson