【发布时间】:2023-03-07 05:56:01
【问题描述】:
我有一个List<CampaignModel>,我需要使用JsonConvert.SerializeObject 对其进行序列化
一切正常,除了我以与类声明不同的顺序获取属性。
我的班级声明是:
public class CampaignModel
{
public string Checked { get; set; }
public int CampaignId { get; set; }
public string Name { get; set; }
public string Market { get; set; }
public string Type { get; set; }
public bool IsActive { get; set; }
public bool Active { get; set; }
}
我在我的 json 中获取属性的顺序是:
有什么线索吗?
【问题讨论】:
-
根据JSON standard,一个对象是一组无序名称/值对。所以属性顺序应该无关紧要。话虽如此,如果您的接收系统无法按任何顺序处理属性,您可以使用
[JsonProperty(Order=XXX)]属性来声明您想要的顺序。 -
JSON 是一种文本格式。您的屏幕截图显示的是对象的可视化(可能是通过解析 JSON 字符串创建的)。
-
我认为你被你的调试器欺骗了,它按名称对键进行排序。 Json.Net 似乎默认遵守声明属性的顺序。小提琴:dotnetfiddle.net/NJkOuA。无论如何,@dbc 说的是正确的;属性出现的顺序对您的代码来说并不重要。