C# 反序列化 JSON 以在 foreach 循环中使用

标签 c# json foreach deserialization

我有从 HTTP 请求发布的 json。我正在尝试将其反序列化以在 foreach 循环中使用。不幸的是,它的格式让我很恼火,因为它是一个对象列表(我相信)。

到目前为止我有以下内容:

dynamic jsonObj = JsonConvert.DeserializeObject(await req.ReadAsStringAsync());

foreach (var p in jsonObj.hireSchedules)
    {
     ///do something
    }

我的json如下:

{
"hireSchedules": [
    {
        "plant": "7246054",
        "num" : "79",
        "hire": "1137277"
     },
    {
        "plant": "7246055",
        "num" : "80",
        "hire": "1137278"
     }
    ]
}

我有以下类(class):

public class HireSchedule
{
    public string plant { get; set; }
    public string num { get; set; }
    public string hire { get; set; }
}

public class RootObject
{
    public List<HireSchedule> hireSchedules { get; set; }
}

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

由于您已经定义了类,因此很容易将其反序列化到它们中。然后您就有了一个强类型类,IDE 应该能够帮助您了解如何访问属性。

var json = File.ReadAllText("json1.json");
var root = JsonConvert.DeserializeObject<RootObject>(json);

foreach (var p in root.hireSchedules)
{
    ///do something
}

关于C# 反序列化 JSON 以在 foreach 循环中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58196332/

相关文章:

javascript - 如果对象属性存在于 Javascript/Typescript 中的另一个对象上,如何删除对象属性

php - 如何一次循环遍历两个数组?

c# - 具有零参数的 Action 委托(delegate)

试图回显 json 数据的 php 代码

php - 如何使用 android volley 导入 json 对象?

php - 在 foreach 的每次迭代中创建新数组

c# - 满足条件时从列表中删除项目

c# - 是否可以将参数(绑定(bind))传递给 WPF 样式

c# - UWP : async read file into byte[]

c# - 如何在 10 美元和 50.58 美元之间划线