枚举 NewtonSoft.Json 的 JObject 在 C# 中丢失''字符



我想使用NewtonSoft.jsonJObject.Parse()解析json字符串。假设json字符串如下:

{"json":"{"count":"123"}"}
  1. jObject.First.ToString()的结果是"json": "{"count":"123"}"

  2. jObject["json"].ToString()的结果是{"count":"123"}。枚举得到的结果与此相同。

我使用的测试代码是这样的。

[TestMethod()]
public void JsonParseTest()
{
var json = "{"json":"{\"count\":\"123\"}"}";
var jObject = JObject.Parse(json);
Console.WriteLine($"json : {json}");
Console.WriteLine($"jObject.First.ToString() : {jObject.First}");
Console.WriteLine($"jObject["json"].ToString() : {jObject["json"]}");
}

我们可以看到,枚举jObject将丢失字符'\'。问题出在哪里?如果有任何建议,我将不胜感激:(

第1版NewtonSoft的版本为12.0.3,于2019.11.09发布。

解析器没有丢失任何东西。在您的示例中没有文字。反斜杠纯粹是JSON语法的一部分,用于转义字符串vlue中的"。关键字json的值为{"count":"123"}

如果你想在这个值中有反斜杠(但我不明白你为什么要这样(,那么你需要添加它们,就像你在C#字符串中添加它们一样(C#和JSON碰巧有相同的转义机制(:

{"json":"{\"count\":\"123\"}"}

带有指向C#代码的引线:

var json = "{"json":"{\\\"count\\\":\\\"123\\\"}"}";

相关内容

  • 没有找到相关文章

最新更新