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