当字符串包含双引号时,如何将 JSON 读入 JObject?

How to read JSON into a JObject when the string contains double quotes ?

我有一块JSON,我想把它变成一个字符串供C#使用。问题是当我转义所有双引号时它似乎不再有效。例如:

 string jsonString = " {[ {    \"FieldId\": \"Fields.364\",    \"FieldName\": \"LoanNo\",    \"Precision\": \"0\"  } ,  {    \"FieldId\": \"Fields.4002\",    \"FieldName\": \"LastNameB\"  } ]}";
        JObject jsettings = JObject.Parse(jsonString);

是否有更简单的方法将 JSON 的字符串放入 C# JObject 中?

就 JSON 而言,您实际上 没有转义任何双引号 - 该字符串不包含任何反斜杠。您可以使用 Console.WriteLine(jsonString); 确认这一点。

问题是您当前在对象中直接获得了一个数组 - 这是无效的 JSON。

如果你改变它,使数组成为属性,就可以了:

string jsonString = " { \"foo\":[ { /* rest as before */ } ] }";

结果是 JSON 的:

{
  "foo": [
    {
      "FieldId": "Fields.364",
      "FieldName": "LoanNo",
      "Precision": "0"
    },
    {
      "FieldId": "Fields.4002",
      "FieldName": "LastNameB"
    }
  ]
}

(只需在您发布的代码后使用 Console.WriteLine(jsettings);。)