嗨,我想从Web服务返回的JSON对象中读取ID:
[{“ id”:11,“用户名”:“ test5”}]
代码:
HttpResponseMessage response = null;
using (response = httpClient.PostAsync(url, content).Result)
{
try
{
response.EnsureSuccessStatusCode(); //200 Ok
string responJsonText = response.Content.ReadAsStringAsync().Result;
JObject res = JObject.Parse(responJsonText);
//if ((int)res["id"][0] > 0)
// {
var uid = (int)res["id"][0];
if (uid > 0)
{
return uid;
}
else
{ return 0; }
// }
// else
//{ return 0; }
}
我如何使用C#从Json Response中读取ID和用户名?
我收到以下消息的异常消息:
从JsonReader读取JObject时出错。当前JsonReader项不是对象:StartArray。路径
答案 0 :(得分:7)
您可以创建一个与您的json结构匹配的模型:
public class User
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("username")]
public string Username { get; set; }
}
然后使用Newtonsoft.Json nuget包反序列化json字符串,如下所示:
string json = @"[{""id"":11,""username"":""test5""}]";
var users = JsonConvert.DeserializeObject<List<User>>(json);
string json = @"[{""id"":11,""username"":""test5""}]";
JArray array = JArray.Parse(json);
int id = array.First["id"].Value<int>();
string username = array.First["username"].Value<string>();
我假设数组将包含至少1个元素,并且将有一个id
和username
属性。应添加正确的错误处理代码。