首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON.net反序列化失败,在json中使用双JSON.net

JSON.net反序列化失败,在json中使用双JSON.net
EN

Stack Overflow用户
提问于 2012-02-21 21:32:56
回答 1查看 1.2K关注 0票数 0

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

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

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

代码语言:javascript
复制
"{
   \"$id\":\"1\",
   \"Treatment_ID\":36050,
   \"Project_Classification\":\"MCPM\",
   \"Improvement_Type\":\"Cape Seal\",
   \"Jurisdiction\":\"24120\",
   \"Description\":\"\",
   \"Planned\":true,
   \"Comment\":\"test22 2\"\"
}"

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

代码语言:javascript
复制
"{
   "$id":"1",
   "Treatment_ID":36050,
   "Project_Classification":"MCPM",
   "Improvement_Type":"Cape Seal",
   "Jurisdiction":"24120",
   "Description":"",
   "Planned":true,
   "Comment":"test22 2\""
}"

我如何克服这种行为?

EN

回答 1

Stack Overflow用户

发布于 2012-02-21 21:41:32

不受欢迎的JSON形式在有问题的引号前面只有一个反斜杠,与用于JSON结构本身的引号一样多。我的猜测是它应该有三个:两个用来在结果字符串中生成一个“真正的”反斜杠字符,另一个用来使引号不会结束字符串。(请注意,您当前拥有的东西既不是字符串,也不是对象,这是由SO的代码突出显示带来的事实)

从你的问题看,我不太清楚“所有的双引号都会自动转义”发生在哪里。在JSON.stringify中没有浏览器可以做到这一点。我也希望JSON.net不会把事情搞砸。因此,要么是执行ajax请求的客户端,要么是将请求传递给JSON.net的服务器上的中间程序出了问题。你需要发布更多关于那里有什么的细节,以便找出问题所在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9378501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档