首页 新闻 会员 周边

C# 在Json序列化时,怎么根据条件序列化为数值或者字符串?

0
[已解决问题] 解决于 2021-07-27 15:57

在Json序列化时,怎么根据条件序列化为数值或者字符串?

echo_lovely的主页 echo_lovely | 小虾三级 | 园豆:1433
提问于:2021-07-21 10:18
< >
分享
最佳答案
0

用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());
            }
}
奖励园豆:5
czd890 | 专家六级 |园豆:14412 | 2021-07-21 10:28
其他回答(2)
0

序列化可以自定义转换器来实现,
反序列化不行

吴瑞祥 | 园豆:29449 (高人七级) | 2021-07-21 12:03
0

全部序列化字符串再转换不得吗

superstar | 园豆:261 (菜鸟二级) | 2021-07-22 10:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册