C# Json 反序列化错误
C# Json deserialization error
我想将 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();
但是我收到一个错误
After parsing a value an unexpected character was encountered: a. Path
'[0].jsonStr', line 1, position 56.
您的JSON无效。反转义后变成如下字符串:
[
{
"FirstName" : "first",
"LastName" : "second",
"jsonStr" : "[{" abc ":" a "," xyz ":" x "}]"
}
]
Stack Overflow 语法高亮显示您的 JSON 无效。
您还可以检查 JSON 有效性 here.
为了使其有效,您在 jsonStr
中的引号应该再次转义:
string js = "[{\"FirstName\":\"first\",\"LastName\":\"second\",\"jsonStr\":\"[{\\"abc\\":\\"a\\",\\"xyz\\":\\"x\\"}]\"}]";
此 C# 字符串现在包含以下 JSON,这是有效的:
[
{
"FirstName": "first",
"LastName": "second",
"jsonStr": "[{\"abc\":\"a\",\"xyz\":\"x\"}]"
}
]
我想将 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();
但是我收到一个错误
After parsing a value an unexpected character was encountered: a. Path '[0].jsonStr', line 1, position 56.
您的JSON无效。反转义后变成如下字符串:
[
{
"FirstName" : "first",
"LastName" : "second",
"jsonStr" : "[{" abc ":" a "," xyz ":" x "}]"
}
]
Stack Overflow 语法高亮显示您的 JSON 无效。
您还可以检查 JSON 有效性 here.
为了使其有效,您在 jsonStr
中的引号应该再次转义:
string js = "[{\"FirstName\":\"first\",\"LastName\":\"second\",\"jsonStr\":\"[{\\"abc\\":\\"a\\",\\"xyz\\":\\"x\\"}]\"}]";
此 C# 字符串现在包含以下 JSON,这是有效的:
[
{
"FirstName": "first",
"LastName": "second",
"jsonStr": "[{\"abc\":\"a\",\"xyz\":\"x\"}]"
}
]