我有一段JSON,我想进入一个字符串供C#使用。问题是,当我转义所有双引号时,它似乎不再有效。例如:
string jsonString = " {[ { \"FieldId\": \"Fields.364\", \"FieldName\": \"LoanNo\", \"Precision\": \"0\" } , { \"FieldId\": \"Fields.4002\", \"FieldName\": \"LastNameB\" } ]}";
JObject jsettings = JObject.Parse(jsonString);
是否有更简单的方法将JSON字符串转换为C#JObject?
答案 0 :(得分:4)
就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);
。)