[英]C# Json deserialization error
I want to convert json string to C# datatable and my json string contains another json string. 我想将json字符串转换为C#数据表,而我的json字符串包含另一个json字符串。 I don't want to convert internal json string (keep it as string only). 我不想转换内部json字符串(仅将其保留为字符串)。 this is my code 这是我的代码
string js = "[{\"FirstName\":\"first\",\"LastName\":\"second\",\"jsonStr\":\"[{\"abc\":\"a\",\"xyz\":\"x\"}]\"}]";
DataTable dt = (DataTable)JsonConvert.DeserializeObject(js, (typeof(DataTable)));
gv.DataSource = dt;
gv.DataBind();
But I am getting an error 但是我遇到一个错误
After parsing a value an unexpected character was encountered: a. 解析值后,遇到意外的字符: Path '[0].jsonStr', line 1, position 56. 路径'[0] .jsonStr',第1行,位置56。
Your JSON is invalid. 您的JSON无效。 After unescaping, it becomes the following string: 退出转义后,它将变为以下字符串:
[
{
"FirstName" : "first",
"LastName" : "second",
"jsonStr" : "[{" abc ":" a "," xyz ":" x "}]"
}
]
Stack Overflow syntax highlighting suggests that your JSON is invalid. 堆栈溢出语法突出显示表明您的JSON无效。
You can also check the JSON validity here . 您还可以在此处检查JSON的有效性。
In order to make it valid, your quotes within jsonStr
should have been escaped again: 为了使其有效,您应该再次对jsonStr
的引号进行转义:
string js = "[{\"FirstName\":\"first\",\"LastName\":\"second\",\"jsonStr\":\"[{\\\"abc\\\":\\\"a\\\",\\\"xyz\\\":\\\"x\\\"}]\"}]";
This C# string now contains the following JSON, which is valid: 现在,此C#字符串包含以下有效的JSON:
[
{
"FirstName": "first",
"LastName": "second",
"jsonStr": "[{\"abc\":\"a\",\"xyz\":\"x\"}]"
}
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.