gpt4 book ai didi

c# - 在 JSON.NET 中序列化派生类时的字段顺序

转载 作者:IT王子 更新时间:2023-10-29 04:53:42 27 4
gpt4 key购买 nike

考虑这两个类:

public Class Base {
public string Id {get; set;}
public string Name {get; set;}
public string LastName {get; set;}
}

派生类:

public Class Derived : Base {
public string Address {get; set;}
public DateTime DateOfBirth {get; set;}
}

使用 Json.Net 序列化派生类时:

Derived record = new Derived record(); {// Initialize here...}
JsonConvert.SerializeObject(record);

默认情况下,派生类的属性首先出现:

{ 
"address": "test",
"date_of_birth" : "10/10/10",
"id" : 007,
"name" : "test name",
"last_name": "test last name"
}

我需要什么:

{ 
"id" : 007,
"name" : "test name",
"last_name": "test last name"
"address": "test",
"date_of_birth" : "10/10/10",
}

问题

在序列化派生类时(不为每个属性使用 [JsonProperty(Order=)] 时,是否有可能让基类属性排在第一位两个类(class)的)?

最佳答案

作为补充,另一种不同于公认答案的方法是使用[JsonProperty(Order = -2)];您可以按如下方式修改基类:

public class Base
{
[JsonProperty(Order = -2)]
public string Id { get; set; }

[JsonProperty(Order = -2)]
public string Name { get; set; }

[JsonProperty(Order = -2)]
public string LastName { get; set; }
}

将 Order 值设置为 -2 的原因是每个没有显式 Order 值的属性在默认情况下都具有 -1 值。因此,您需要给所有子属性一个 Order 值,或者只将基类的属性设置为 -2。

关于c# - 在 JSON.NET 中序列化派生类时的字段顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32571695/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com