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

时间:2019-08-19 09:27:28

标签: c# json json.net

我正在从API检索JSON,并且遇到以下问题: 一些Json值看起来像这样,无法以标准方式进行序列化

"key": "This is just a "dummy" value to show the problem",

问题在于假人周围的引号。 Newtonsoft显然认为该值以哑元前的引号结尾,但实际上是在问题后结束。 有没有办法忽略那些引号或以某种方式自动将其删除?

我试图用StringBuilder和String-Replace删除它们,但这没有用,因为这种模式在JSON-File中出现了多个时间,有时嵌套的引号引用了一个单词,有时是整个句子

API中的整个JSON大约有50.000行,因此无法手动纠正错误。

这可以用C#解决吗?

1 个答案:

答案 0 :(得分:0)

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

一个例子是当JSON的value属性结束并且下一个开始时,中间出现一个逗号字符。

基本上它是一个巨大的嵌套if条件。

原始答案

Your example

如您所见,它不会解析为有效的JSON。您必须按以下方式表示引号。如果您的控件中没有东西,您必须提供一个自定义解析器。

Valid JSON with quotes