NSJSONSerialization 由于反斜杠而无法解析

NSJSONSerialization fails to parse due to backslashes

提问人:Kenny Wyland 提问时间:7/8/2023 更新时间:7/8/2023 访问量:33

问:

数据库中的原始文本是 。stuff stuff :o\

我的PHP服务器API正在抓取它并将其放入json有效负载中,作为这个键:值对:

"notetext": "stuff stuff :o\\",

我的 iOS objective-c 代码使用 .NSURLSessionDataTask

我解析了这样提供的对象:NSDataNSURLSessionDataTask

NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];

我收到错误:The data couldn’t be read because it isn’t in the correct format.

如果我从原始文本中删除反斜杠,那么一切都按预期工作。因此,字符串末尾的反斜杠似乎导致了我的问题。但看起来它被正确地逃脱了。stuff stuff :o

我错过了什么?如何确保可以正确解析它?

iOS JSON nsurlsessiondownloadtask

评论

0赞 Ptit Xav 7/8/2023
不确定,但您是否尝试过查看是否可以使用 4 个反斜杠?
0赞 Umer Khan 7/8/2023
在 PHP 中尝试这种方法 $payload = array( “notetext” => “stuff stuff :o\\” );$jsonPayload = json_encode($payload);
0赞 Kenny Wyland 7/26/2023
@PtitXav 就是这样,我不是自己添加反斜杠。PHP函数就是这样做的......但它不应该需要添加 4 个反斜杠。原始文本仅包含一个反斜杠,因此应该只需要反斜杠即可。但是当 iOS 是 json 解码时......似乎它做错了,并将反斜杠应用于结构引号。json_encode()
0赞 Kenny Wyland 7/26/2023
@UmerKhan 不,这不是这样工作的。文本:o\',但iOS似乎错误地对其进行了解码。:o` is in my database. I'm reading that value out of the db and then json encoding that and sending it to the app. It correctly encodes it as

答: 暂无答案