C# 在Json序列化时,怎么根据条件序列化为数值或者字符串?
在Json序列化时,怎么根据条件序列化为数值或者字符串?
回答
用Newtonsoft.Json举例:
if(number_to_string)
new JsonSerializerSettings().Converters
.Add(new NumberToStringConverter<double>())
.Add(new NumberToStringConverter<long>())// ....等等
else new JsonSerializerSettings()
Newtonsoft.Json.JsonConvert.SerializeObject(yourObject,settings);
class NumberToStringConverter<T>:Newtonsoft.Json.Converters.CustomCreationConverter<T>
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(value.ToString());
}
}