C#JSON自定义序列化

有没有一种方法/库可以让我自定义类似于GSON自定义序列化器的JSON序列化?

这是我想要得到的:

这个对象: KeyValuePair(“Age”,10)myAge

通常会被序列化为

“myAge”:{“Key”:“Age”,“Value”:10}

虽然我希望它序列化如下: “年龄”:10代替。 有任何想法吗?

首先我建议使用newton json dll 。

其次你需要为KeyValuePair创建自定义JsonConverter ,如下所示:

public class PairConverter : JsonConverter { public override bool CanConvert(Type objectType) { return objectType == typeof(KeyValuePair); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { throw new NotImplementedException(); } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var item = (KeyValuePair)value; writer.WriteValue(item.Value); writer.Flush(); } } 

然后为’Age’属性添加JsonConverter属性,如下所示:

  public class Persons { [JsonConverter(typeof(PairConverter))] public KeyValuePair Age { get; set; } } 

最后,使用示例:

  var persons = new Persons() { Age = new KeyValuePair("Age", 10) }; var json = JsonConvert.SerializeObject(persons); // {Age:10}