C# Newtonsoft.Json 将 json数组序列化成 数组条数,不返回数据对象

将 json数组序列化成 数组条数


有时候,我们在开发中可能会有这样的需求
我们获取到一个json 字符串,我们将它反序列化成对象的时候 ,需要某些属性,但是我们在序列化的时候又不需要他了,
我查了好多文档, JsonIgnore 并不好用 他会在序列化和反序列化的时候都会忽略,
我想到一个办法,就是使用 jsonConvert 来解决
新建一个类 在这里插入图片描述
继承JsonConvert 然后实现对应的方法

1.CanConvert方法
在这里插入图片描述

在这里插入图片描述
2.然后就是ReadJson 方法
这里要注意是将json 反序列化成你想要的属性,这里如果你想输出数组条数 就可以在
JsonConvert.DeserializeObject<List>(serializer.Deserialize(reader).ToString())后面加上 .count 即可返回当前数组的条数,前提是你对应的属性类型要设置成int
我的方法是这里不管他,额外再声明一个 listCount 属性,count 只有get 方法,return List.count 就可以了,这里就不需要改,然后我 List 在对象里也能用,话不多说上图
在这里插入图片描述
3.WriteJson方法
在这里插入图片描述
我在这里是这么用的,这里注释写的这样,就是将你序列化时候输出你想要的效果,如果不需要改,后面的 空字符串改为 value参数即可
还有很多应用场景,比如在用Mongodb 的时候,序列化的时候输出 string 的ID,但是我反序列化的时候,ID就必须是 ObjectId类型,这里我们可以将反序列化的 string字符串转成 ObjectId类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值