【问题标题】:C# Access value from serialized json arrayC# 访问序列化 json 数组中的值
【发布时间】:2016-03-22 14:00:27
【问题描述】:

我有一个简单的序列化 json 数组

string json = "[{\"id\":100,\"UserId\":99},{\"id\":101,\"UserId\":98}]";
var data = (List<Model>)Newtonsoft.Json.JsonConvert.DeserializeObject(json , typeof(List<Model>));

我要反序列化的模型:

public class Model 
{ 
    public int? id { get; set; }
    public int? UserId { get; set; }
}

从每个 Index[?] 检索数据并将其打印到控制台的最佳方法是什么?

【问题讨论】:

  • @devopsEMK 我知道如何反序列化。它工作成功,但我在从索引中获取数据时遇到问题,因为我无法与 for 循环中的 data.length 进行比较。
  • 究竟使用data[n]data.Count 有什么问题?您也可以改用var data = Newtonsoft.Json.JsonConvert.DeserializeObject&lt;List&lt;Model&gt;&gt;(json); 来摆脱演员表。

标签: c# arrays json.net


【解决方案1】:

你可以做一个foreach循环:

foreach(var item in data) {
    Console.WriteLine(item.UserId);
}

【讨论】:

    【解决方案2】:
     string json = "[{\"id\":100,\"UserId\":99},{\"id\":101,\"UserId\":98}]";
            var objects = JArray.Parse(json);
            var firstIndexValue = objects[0];
            Console.WriteLine(firstIndexValue);
    
            foreach (var index in objects)
            {
                Console.WriteLine(index);
            }
    for (int index = 0; index < objects.Count; index++)
            {
                Console.WriteLine(objects[index]);
            }
    

    【讨论】:

    • 感谢您的帮助。但是,如果我不知道索引值,而是想一一打印每个索引值怎么办?
    猜你喜欢
    • 2017-01-18
    • 1970-01-01
    • 2013-05-27
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 2017-10-16
    • 2012-09-20
    相关资源
    最近更新 更多