JSON.net反序列化失败,JSON中出现双引号



我有一个由JSON.net序列化的对象,该对象被发送到javascript客户端,该客户端将其转换为javascript对象。用户可以编辑该对象,然后javascript使用JSON.stringify(myObject)将其转换回json,并通过ajax将其传递回使用json.net将json反序列化回原始对象的方法。

所有这些工作都很好,直到我在对象上有一个包含双引号的值,这时,JSON.net反序列化失败。

以下是发送到JSON.net进行反序列化的JSON示例:

"{
   "$id":"1",
   "Treatment_ID":36050,
   "Project_Classification":"MCPM",
   "Improvement_Type":"Cape Seal",
   "Jurisdiction":"24120",
   "Description":"",
   "Planned":true,
   "Comment":"test22 2""
}"

所有双引号都将自动转义。如果它们没有被转义,json看起来会更像这样:

"{
   "$id":"1",
   "Treatment_ID":36050,
   "Project_Classification":"MCPM",
   "Improvement_Type":"Cape Seal",
   "Jurisdiction":"24120",
   "Description":"",
   "Planned":true,
   "Comment":"test22 2""
}"

我该如何克服这种行为?

不需要的JSON形式在有问题的引号前面只有一个反斜杠,与JSON结构本身使用的引号一样多。我的猜测是它应该有三个:两个是为了在结果字符串中形成一个"真正的"反斜杠字符,另一个是为了使引号不结束字符串。(请注意,您当前拥有的东西作为字符串或对象都没有意义,SO的代码高亮显示了这一事实)

从你的问题中,我不太清楚"所有双引号都自动转义"发生在哪里。JSON.stringify中没有任何浏览器能做到这一点。我希望JSON.net也不要把事情搞砸。因此,无论是执行ajax请求的客户端,还是将其传递给JSON.net的服务器上的中间层都在崩溃。您需要发布更多关于问题所在的详细信息。

相关内容

  • 没有找到相关文章

最新更新