首页 > 解决方案 > Newtonsoft JSON字符串反序列化与\转义字符问题

问题描述

我们有一个这样的序列化 JSON 字符串:

{\\"count\":1,\r\n\"value\":[\r\n{\"HOST\":\"\\\\cifs_BI-FileDumps\\BI-FileDumps\\\"}]}

上述实际值:

\\cifs_BI-FileDumps\BI-FileDumps\

我尝试使用在线 JSON 解析器将其转换为正常工作以及有效的 JSON。

但是当我们尝试反序列化它时,我们会得到这个错误:

执行“ExecuteQueryFunction”(失败,Id=d6a4875e-7aa8-47e8-b298-16d50f4807b5)System.Private.CoreLib:
执行函数时出现异常:ExecuteQueryFunction。
Newtonsoft.Json:错误的 JSON 转义序列:\B。路径 'value[0].HOST',第 3 行,位置 30。

标签: c#json.net

解决方案


因此,您需要\在序列化之前转义,对该字段进行编码。反序列化后,您应该解码回来。

\cifs_BI-FileDumps\BI-FileDumps\变成:

%5Ccifs_BI-FileDumps%5CBI-FileDumps%5C编码后。

当你解码它时,它会以其他方式工作。


推荐阅读