【问题标题】:Dynamic Datamodel JSON Binding C#动态数据模型 JSON 绑定 C#
【发布时间】:2020-11-25 21:05:44
【问题描述】:

我有一个变化很大的 json 数据集。它可以有一个可以是对象或列表的字段。如果在摄取数据时它可以是或,我如何将它们映射到数据模型属性中。我可以有一个 if else 语句的列表来检查一个属性是一个列表还是一个对象,但是对于 10 个字段会变得相当大并使代码变得丑陋。

field:{property1: 3, property2:4}

field:{[property1: 3, property2:4], [property1: 5, property2:6]}

【问题讨论】:

标签: c# json .net json.net


【解决方案1】:

如果我对您的理解正确,您会收到部分格式不为您所知的数据。

var input = "{\"field\":{\"property1\": 3, \"property2\":4, \"property3\": 5, \"property4\":6}}";
var obj = JsonConvert.DeserializeObject<JObject>(input);
var res = new MyClass(){Fields = new List<MyField>()};
var field = obj.SelectToken("field") as JObject;
if(field != null)
{
    foreach (var item in field.Properties())
    {
        res.Fields.Add(new MyField()
        {
            Name = item.Name, 
            Value = item.Value.Value<int>()
        });
    }
}
public sealed class MyField
{
    public string Name { get; set; }
    public object Value { get; set; }
}

public sealed class MyClass
{
    public List<MyField> Fields { get; set; }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多