为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Newtonsoft 反序列化 JSON,并在值中添加引号

使用 Newtonsoft 反序列化 JSON,并在值中添加引号

C#
胡子哥哥 2023-09-09 16:22:52
我正在从 API 检索 JSON 并遇到以下问题:某些 Json 值看起来像这样,无法以标准方式序列化"key": "This is just a "dummy" value to show the problem",问题是围绕虚拟的引号。Newtonsoft显然认为该值以dummy之前的引用结束,但实际上它在问题之后结束。有没有办法忽略这些引号或以某种方式自动删除它们?我尝试使用 StringBuilder 和 String-Replace 删除它们,但这不起作用,因为这种模式在 JSON 文件中多次出现,有时嵌套的引号引用单个单词,有时引用整个句子。来自 API 的整个 JSON 大约有 50.000 行,因此不可能手动纠正错误。在 C# 中可以以某种方式解决这个问题吗?
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

更新:您必须编写一个自定义解析器来解析,因为它显然不是 JSON。您要做的就是在反序列化之前修复序列化对象。您必须遍历整个字符串并删除不需要的引号。

例如,当 JSON 的 value 属性结束且下一个开始时,中间有一个逗号字符。

它基本上是一个巨大的嵌套 if 条件来解决这个问题。

原答案

你的例子

正如您所看到的,它不会解析为有效的 JSON。您必须按如下方式表示引号。如果它不在你的控制范围内,你必须想出一个自定义解析器。

带引号的有效 JSON


查看完整回答
反对 回复 2023-09-09
  • 1 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信