我有一个字符串JSON,但其中包含花哨的弯引号,这使NSJSONSerialization失败。
let str = "{“title”:\"this is a “test” example\"}"
try! JSONSerialization.jsonObject(with: str.data(using: .utf8)!) // Error
周围的引号title
是双引号,显然JSONSerialization无法处理它并失败。幼稚的方法是简单地将卷曲引用的所有实例替换为非卷曲的实例。这种方法的问题在于它将更改test
不应更改的大括号。周围的引用title
可以更改,但周围的引用不能更改test
。
我该怎么办才能解决此问题?
为了解决这个问题,你跟任何人创建的字符串,它不不包含JSON的那一刻,并说服他们创建一个字符串,它确实包含JSON。
对于JSON,规则是:如果您的解析器无法解析它,那么它就坏了,您不要触摸它。
问题不是JSONSerialization无法处理它。问题在于,JSONSerialization在任何情况下都绝对不能处理它。因为它不是JSON。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句