当字符串包含双引号时,如何将JSON读取到JObject中



我有一段JSON,我想将其放入字符串中供C#使用。问题是,当我跳过所有的双引号时,它似乎不再有效。例如:

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

有没有一种更简单的方法可以将JSON字符串转换为C#对象?

就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);。)

最新更新