很简单,定义一个 Resolver, 然后重载 CreateProperties 方法即可。。
/// <summary>
/// 输出到json字符串时,属性名称按照字典顺序排序输出
/// </summary>
public class PropertySortResolver : DefaultContractResolver
{
/// <summary>
/// 属性名称按照字典顺序排序输出
/// </summary>
/// <param name="type"></param>
/// <param name="memberSerialization"></param>
/// <returns></returns>
protected override IList<JsonProperty> CreateProperties(Type type,
MemberSerialization memberSerialization)
{
IList<JsonProperty> list = base.CreateProperties(type, memberSerialization);
return list.OrderBy(a => a.PropertyName).ToList();
}
}
使用时,
JsonSerializerSettings setting = new JsonSerializerSettings();
setting.NullValueHandling = NullValueHandling.Ignore; //忽略null值;
setting.ContractResolver = new PropertySortResolver();
JsonConvert.SerializeObject(entity, setting)) 就可以了
c# json 按照key顺序排序。。。
最新推荐文章于 2021-09-13 17:59:08 发布