C#JSON自定义序列化

有没有一种方法/库可以让我像GSON自定义序列化程序一样自定义JSON序列化?

这是我想要得到的:

此对象:

通常会像

“ 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<string, int>);

}

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<string, int>)value;

writer.WriteValue(item.Value);

writer.Flush();

}

}

然后像这样为“年龄”属性添加JsonConverter属性:

 public class Persons

{

[JsonConverter(typeof(PairConverter))]

public KeyValuePair<string, int> Age { get; set; }

}

最后,用法示例:

 var persons = new Persons()

{

Age = new KeyValuePair<string, int>("Age", 10)

};

var json = JsonConvert.SerializeObject(persons); // {Age:10}

以上是 C#JSON自定义序列化 的全部内容, 来源链接: utcz.com/qa/400548.html

回到顶部