在 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; }
创建一个类:
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.