C# Can';在mysql中使用json_数组和json_对象后,将json解析为JArray对象
我正在查询一个mySQL(MariaDB)数据库,并使用JSON_数组和JSON_对象将JSON对象收集为数组 我有一个api,可以使用GetAsync从数据库中检索数据 之后,在api使用者中,我想将Json解析为一个对象, 使用JArray(Newtonsoft) 我无法解析Json,因为Json_对象中出现了问题(它看起来像是一个用引号括起来的数组符号“[”)。请参阅下面的错误代码 我做错了什么?我该如何修复它 当从另一个数据源(不使用Json_数组和Json_对象)获取另一个Json时,解析正在工作(参见下面的示例) 这是我的代码:C# Can';在mysql中使用json_数组和json_对象后,将json解析为JArray对象,c#,mysql,json,json.net,C#,Mysql,Json,Json.net,我正在查询一个mySQL(MariaDB)数据库,并使用JSON_数组和JSON_对象将JSON对象收集为数组 我有一个api,可以使用GetAsync从数据库中检索数据 之后,在api使用者中,我想将Json解析为一个对象, 使用JArray(Newtonsoft) 我无法解析Json,因为Json_对象中出现了问题(它看起来像是一个用引号括起来的数组符号“[”)。请参阅下面的错误代码 我做错了什么?我该如何修复它 当从另一个数据源(不使用Json_数组和Json_对象)获取另一个Json时,
public JARrray parse(HttpResponseMessage response)
{
return JArray.Parse(response.Content.ReadAsStringAsync().Result);
}
这是工作的字符串:
[
{
"remark":"",
"driver": [
{
"username":"0000000",
"uid":"00000000",
"fname": "000000",
"lname": ""
}
]
}
]
这是获取消息的字符串
分析值后遇到意外字符:u.路径“[0]。驱动程序”,行
我可以在堆栈中看到,这在生产线上发生:
JsonTextReader.ParsePostValue(Boolean ignoreComments):
Json:
甚至,当我删除“”时:
ZZZZ前面转义的双引号错误。请将其从
“\
更改为\”
这是一个打字错误-复制时(徒手)。我会修正它。你说你是从数据库中获取数据,但在你的解析方法中你使用的是HttpResponseMessage
。同样,在你的第一个json结构driver
中是一个数组,而在你的第二个块中是一个包含json编码数组的字符串。@derpirscher-我有一个生成API的API创建者,我得到了作为字符串的响应(与其他数据源一起使用)。至于您对包含json编码数组的驱动程序字符串的评论,您是对的!我如何管理\修复它?修复此问题的唯一正确方法是在数据库中正确存储和检索数据,并在API创建者中正确处理。
[
{
"remark":"",
"driver": "[{\"username\": \"0000000\", \"uid\": \"00000000\", \"fname\":\"ZZZZZ\", \"lname\":\"\"}]"
}
]
[
{
"remark":"",
"driver": "[{"username": "0000000", "uid": "00000000", "fname":"ZZZZZ", "lname":""}]"
}
]
\"fname\":"\ZZZZZ\"