我试图在asp.net中使用json字符串,谷歌告诉我这个json。网络图书馆。
我有以下json从一个php webservice:
"[{"AccountID":"demo","UserID":"1","Password":"*blank*","Active":"1","Name":""}][{"AccountID":"demo","UserID":"1","Password":"*blank*","Active":"1","Name":""}]"
我发现库不能加载url,所以我不得不使用System.Net.WebClient;到目前为止还好。问题是执行
var json = webClient.DownloadString(url); //gives the json above
object user = JsonConvert.DeserializeObject(json);
// or User user =JsonConvert.DeserializeObject<User>(json); wont work
不起作用库说"在解析值后遇到意外字符"
那么,我的json格式是错误的吗?我用json_encode($resultset)从php构建它,所以我想知道发生了什么。
我的用户对象只具有我在json上的属性
首先,您的JSON字符串在整个结果周围有双引号,在每个其他双引号之前有一个反斜杠。我假设这是从VisualStudio调试器中复制出来的工件(它像这样显示它)。
如果我们删除这些反斜杠,我们得到以下JSON:
[{"AccountID":"demo","UserID":"1","Password":"*blank*","Active":"1","Name":""}]
[{"AccountID":"demo","UserID":"1","Password":"*blank*","Active":"1","Name":""}]
这是两个相同的JSON数组。但是,有效的JSON响应由单个JSON对象或单个JSON数组组成。此响应无效。
似乎两个JSON响应连接在一起,导致无效结构。
这是因为您的json字符串格式不正确
如果你要使用括号[
,那么json只有一个数组。因为你的声明很可能是一个数组。把你的字符串(我编辑过的)放到这个网站上,你自己看看结果。
[{"AccountID":"demo","UserID":"1","Password":"*blank*","Active":"1","Name":""},{"AccountID":"demo","UserID":"1","Password":"*blank*","Active":"1","Name":""}]