在 C# 中操作多维 JSON 数组

本文关键字:JSON 数组 操作 | 更新日期: 2023-09-27 18:35:24

我需要操作以下JSON数组来比较公司ID的值。任何建议我如何操纵它。

{  "39513447": {    "field": "39513447",    "label": "CompanyId",    "type": "number",    "value": "5907"  },  "39513458": {    "field": "39513458",    "label": "UserId",    "type": "number",    "value": "5904"  },  "39380671": {    "field": "39380671",    "label": "Name",    "type": "name",    "value": "first = First'nlast = Name"  },  "39380675": {    "field": "39380675",    "label": "Company Name",    "type": "text",    "value": "CompanyName"  },  "39381333": {    "field": "39381333",    "label": "Planned Gross Salary Amount",    "type": "number",    "value": "11020"  },  "39381266": {    "field": "39381266",    "label": "Per:",    "type": "select",    "value": "Annum"  },  "39380485": {    "field": "39380485",    "label": "Planned Gross Dividend Amount",    "type": "number",    "value": "31980"  },  "39381357": {    "field": "39381357",    "label": "Per:",    "type": "select",    "value": "Annum"  }}

我有一个具有以下 3 个属性的类:

public int id { get; set; }
public DateTime timestamp { get; set; }
public object data { get; set; }

我使用反序列化:

T jsonObject = JsonConvert.DeserializeObject<T>(text);

理想情况下,希望反序列化为具有以下 4 个属性的类:

public string field { get; set; }
public string label { get; set; }
public string type { get; set; }
public string value { get; set; }

在 C# 中操作多维 JSON 数组

创建一个类:

public class MyClass
{
    public string field { get; set; }
    public string label { get; set; }
    public string type { get; set; }
    public string value { get; set; }
}

并且简单地将 json 反序列化为字典:

var json = GetJsonString();
var dict = JsonConvert.DeserializeObject<Dictionary<int,MyClass>>(json);
以下是

获取数据的方法:

var curr = dict[39513447]; 
var field = curr.field;
var label = curr.label;
// etc.