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

我正在从 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# 中可以以某种方式解决这个问题吗?


胡子哥哥
浏览 146回答 1
1回答

紫衣仙女

更新:您必须编写一个自定义解析器来解析,因为它显然不是 JSON。您要做的就是在反序列化之前修复序列化对象。您必须遍历整个字符串并删除不需要的引号。例如,当 JSON 的 value 属性结束且下一个开始时,中间有一个逗号字符。它基本上是一个巨大的嵌套 if 条件来解决这个问题。原答案正如您所看到的,它不会解析为有效的 JSON。您必须按如下方式表示引号。如果它不在你的控制范围内,你必须想出一个自定义解析器。
打开App,查看更多内容
随时随地看视频慕课网APP