0

我想用 .Net 3.1 反序列化以下 JSON

我的困难是当这个对象被序列化时,这个对象的“1234”键是未知的。我怎么能反序列化这个?我要保留的值是嵌套的“first_name”和“last_name”属性

{
   "1234":{
      "id":1234,
      "first_name":"John",
      "last_name":"Doe"
   }
}

任何帮助表示赞赏!

4

2 回答 2

0

您可以使用字典:

public class Child
{
    [JsonPropertyName("id")]
    public string ID { get; set; }
    [JsonPropertyName("first_name")]
    public string FirstName { get; set; }
    [JsonPropertyName("last_name")]
    public string LastName { get; set; }
}

public class Parent
{
    public Dictionary<string, Child> Children { get; set; }
}

然后,您可以通过Children使用Foreach或枚举Linq

于 2021-09-16T07:34:06.983 回答
0

如果您使用该Newtonsoft.Json.JsonConverter库,您可以创建一个自定义JsonConverter来处理动态属性并覆盖 ReadJson 和 WriteJson 方法。

public class MyConverter : JsonConverter
{
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        // write your custom read json
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        // write your custom write json
    }
}

https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonConverter.htm

于 2021-09-16T07:26:08.227 回答