c# 多层JSON数据动态解析

1.json数据

{
    "workOrderId": "WW0000001-01-01",
    "orderDate": "2020-01-01",
    "productNum": "1",
    "productId": "P1205000900",
    "productModel": "TRD-271000AF",
    "planModel": "P",
    "productSimpleCode": "P1205",
    "productQuantity": 100,
    "workshop": "",
    "workCore": "",
    "procedure": [{
            "orderId": "PG0001",
            "procedureId": "01",
            "procedureName": "插件焊接",
            "id": 1,
            "materialInfo": [{
                "materialId": "C001",
                "positionNum": "",
                "trayCode": "tp001-1",
                "singleUse": "1",
                "materialUse": "100"
            }, {
                "materialId": "C002",
                "positionNum": "",
                "trayCode": "tp001-2",
                "singleUse": "2",
                "materialUse": "50"
            }]
        }, {
            "orderId": "PG0002",
            "procedureId": "02",
            "procedureName": "LED安装",
            "id": 2,
            "materialInfo": [{
                "materialId": "C003",
                "positionNum": "",
                "trayCode": "tp002-1",
                "singleUse": "1",
                "materialUse": "100"
            }, {
                "materialId": "C004",
                "positionNum": "",
                "trayCode": "tp002-2",
                "singleUse": "2",
                "materialUse": "50"
            }]
        }, {
            "orderId": "PG0003",
            "procedureId": "03",
            "procedureName": "光栅贴附",
            "id": 3,
            "materialInfo": [{
                "materialId": "C004",
                "positionNum": "",
                "trayCode": "tp003-1",
                "singleUse": "1",
                "materialUse": "100"
            }, {
                "materialId": "C005",
                "positionNum": "",
                "trayCode": "tp003-2",
                "singleUse": "2",
                "materialUse": "50"
            }]
        }]
}

2.json对象创建(注:对象名称必须与json数据名称保持一致)

using System.Collections.Generic;

namespace Global
{
    public class WorkOrderReceived
    {
        public string workOrderId { get; set; }

        public string orderDate { get; set; }

        public string productNum { get; set; }

        public string productId { get; set; }

        public string productModel { get; set; }

        public string planModel { get; set; }

        public string productSimpleCode { get; set; }

        public string productQuantity { get; set; }

        public string workshop { get; set; }

        public string workCore { get; set; }

        public List<procedure> procedure { get; set; }

    }

    public class procedure
    {
        public string orderId { get; set; }

        public string procedureId { get; set; }

        public string procedureName { get; set; }

        public string id { get; set; }

        public List<materialInfo> materialInfo { get; set; } 
    }

    public class materialInfo
    {
        public string materialId { get; set; }

        public string positionNum { get; set; }

        public string trayCode { get; set; }

        public string singleUse { get; set; }

        public string materialUse { get; set; }
    }
}

3.解析代码

using Newtonsoft.Json;   
、
 public void AnaysisJson(string jsonValue)
 {
     WorkOrderReceived workOrderReceived = JsonConvert.DeserializeObject<WorkOrderReceived>(jsonValue); 
}
原文地址:https://www.cnblogs.com/hanglog/p/13743268.html