JSON分析过程中出错



JSON字符串:

[{"id":"1","username":"admin","password":"anymd5hash","rank":"2"}]

以下代码:

Newtonsoft.Json.Linq.JObject userData;
userData = Newtonsoft.Json.Linq.JObject.Parse(result);
MessageBox.Show(userData["username"].ToString());

当我执行这个代码时,会出现一个错误:

从JsonReader读取JObject时出错。当前JsonReader项不是一个对象:StartArray。路径",第1行,位置1。

我很确定,这段代码在另一个项目中也起了作用。

我犯了什么错?

您没有提供Json对象,而是提供了一个Json数组,其中只有一个对象:

// Json object:
{
  "id": "1",
  ...
}
//Json array:
[
  {
    "id": "1",
    ...
  }
]

因此,您可以更改json或json.Net代码(并在注释中查找JArray)。

顺便说一句,如果你事先知道属性,你真的应该创建一个.Net类来包含反序列化。

public class UserData
{
  public string id { get; set; }
  public string username { get; set; }
  public string password { get; set; }
  public string rank { get; set; }
}
// and then, in your code:
List<UserData> userData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserData>>(result);

相关内容

  • 没有找到相关文章

最新更新