gpt4 book ai didi

c# - 当被 JSON.NET 序列化时,属性的顺序变得困惑

转载 作者:太空狗 更新时间:2023-10-29 18:20:02 25 4
gpt4 key购买 nike

在我的 POCO 对象中,我经常从其他 POCO 对象继承。当我使用 JSON.NET 序列化 POCO 对象时,属性的顺序变得一团糟。

比如说,我有一个如下所示的 Person 类:

public class Person
{
public int Id {get; set;}
public string FirstName {get; set;}
public string LastName {get; set;}
}

然后我有一个继承自 Person 类的 Employee 类:

public class Employee : Person
{
public int DepartmentId {get; set;}
public string Title {get; set;}
}

当我序列化 Employee 类时,我的 JSON 对象如下所示:

{
"departmentId": 123,
"title": "Manager",
"id": 1234567,
"firstName": "John",
"lastName": "Smith"
}

两个问题:

  1. 我的 JSON 对象属性的顺序重要吗?
  2. 即使属性的顺序无关紧要,我如何才能使属性的顺序正确,即我希望首先查看 Person 类属性,然后是 Employee 类属性。

感谢您的帮助。

最佳答案

1.) 不,顺序无关紧要。

2.) 您可以使用 [JsonProperty(Order=x)] 属性来控制顺序:

public class Employee : Person
{
[JsonProperty(Order = 1)]
public int DepartmentId { get; set; }

[JsonProperty(Order = 1)]
public string Title { get; set; }
}

通过快速测试,order默认为0,从低到高排序,Order值相同的属性按任意顺序排序。

关于c# - 当被 JSON.NET 序列化时,属性的顺序变得困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25925965/

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