我有一个需要处理来自 Web 服务的响应的 iOS 应用程序。响应是一个包含序列化 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
或其他可用方法的简单方法。