C#Json反序列化错误
本文关键字:错误 反序列化 C#Json | 更新日期: 2023-09-27 18:28:22
我想将json字符串转换为C#数据表,我的json字符串包含另一个json字符串。我不想转换内部json字符串(只将其作为字符串)。这是我的代码
string js = "[{'"FirstName'":'"first'",'"LastName'":'"second'",'"jsonStr'":'"[{'"abc'":'"a'",'"xyz'":'"x'"}]'"}]";
DataTable dt = (DataTable)JsonConvert.DeserializeObject(js, (typeof(DataTable)));
gv.DataSource = dt;
gv.DataBind();
但我收到一个错误
分析值后,遇到一个意外字符:a.Path"[0].jsonStr",第1行,位置56。
您的JSON无效。取消捕获后,它变成以下字符串:
[
{
"FirstName" : "first",
"LastName" : "second",
"jsonStr" : "[{" abc ":" a "," xyz ":" x "}]"
}
]
堆栈溢出语法高亮显示表明您的JSON无效
您也可以在此处检查JSON的有效性。
为了使其有效,您在jsonStr
中的引号应该再次转义:
string js = "[{'"FirstName'":'"first'",'"LastName'":'"second'",'"jsonStr'":'"[{'''"abc'''":'''"a'''",'''"xyz'''":'''"x'''"}]'"}]";
这个C#字符串现在包含以下有效的JSON:
[
{
"FirstName": "first",
"LastName": "second",
"jsonStr": "[{'"abc'":'"a'",'"xyz'":'"x'"}]"
}
]