【问题标题】:C#, JSON.net Loop through and store Jobject objectsC#、JSON.net 循环并存储 Jobject 对象
【发布时间】:2018-03-23 01:11:16
【问题描述】:

不熟悉 C# 和使用 JSON。尝试使用以下格式的 Web API 制作一些适用于某些 JSON 的东西。想循环并存储 secondUser_id 和状态以供以后使用。

{
  "user_list": [
    {
      "user_id": "12345678910",
      "secondUser_id": "5428631729616515697",
      "member_since": "1521326679",
      "member_since_date": "2018-03-32",
      "function": "test",
      "rank_int": "1",
      "status": "0"
    },
    {
      "user_id": "11345638910",
      "secondUser_id": "5428631729616515697",
      "member_since": "1521326679",
      "member_since_date": "2018-03-32",
      "function": "test",
      "rank_int": "1",
      "status": "0"
    },
    {
      "user_id": "13452578910",
      "secondUser_id": "12390478910",
      "member_since": "12316578910",
      "member_since_date": "2018-03-32",
      "function": "test",
      "rank_int": "1",
      "status": "0"
    }
  ],
  "returned": 3
}
string jsonUrl = GetJSON("url");
JObject UsersJObject = JObject.Parse(jsonUrl);
JToken user = UsersJObject["user_list"].First["secondUser_id"];

Console.WriteLine("User ID: " + user);

这将获得第一个条目,但我不确定将什么用于枚举器?

【问题讨论】:

  • 考虑反序列化

标签: c# json json.net


【解决方案1】:

试试这样的:

foreach (var obj in UsersJObject["user_list"] as JArray)
{
    Console.WriteLine(obj["secondUser_id"]);
}

您可以迭代 JArray 的元素,而 user_list 将属于该类型,对其进行强制转换,然后您可以在 foreach 循环中对其进行迭代。

【讨论】:

    【解决方案2】:

    我会推荐你​​使用JsonConvert.DeserializeObject<T>

    这可以帮助您轻松使用对象

    public class UserList
    {
        public string user_id { get; set; }
        public string secondUser_id { get; set; }
        public string member_since { get; set; }
        public string member_since_date { get; set; }
        public string function { get; set; }
        public string rank_int { get; set; }
        public string status { get; set; }
    }
    
    public class JsonData
    {
        public List<UserList> user_list { get; set; }
        public int returned { get; set; }
    }
    

    这样使用。

    string jsonUrl = GetJSON("url");
    
    JsonData UsersJObject = JsonConvert.DeserializeObject<JsonData>(jsonUrl);
    
    foreach (var obj in UsersJObject.user_list)
    {
        Console.WriteLine(obj.secondUser_id);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 2021-07-21
      • 2015-07-03
      相关资源
      最近更新 更多