正确的JSON格式(Json.NET



我试图在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":""}]

相关内容

  • 没有找到相关文章

最新更新