当字符串包含双引号时,如何将 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);
。)
我有一块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);
。)