您当前的位置: 首页 >  unity

染指流年灬

暂无认证

  • 2浏览

    0关注

    194博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity Json.Net 重复反序列化的问题

染指流年灬 发布时间:2021-12-05 14:25:21 ,浏览量:2

在21年2月的最新的Newtonsoft.json以及Unity2021.1.12f1c1开发中 有这样一段代码

  public class PlayerBagDataLocalSave
    {
        [JsonProperty("_playerSingleBagDataLocalSave")]
        public List _playerSingleBagDataLocalSaves;


        public PlayerBagDataLocalSave(List data)
        {
            this._playerSingleBagDataLocalSaves = data;
        }
        
        
        public List PlayerSingleBagDataLocalSaves => _playerSingleBagDataLocalSaves;
    }

这样的代码会导致这个类序列化的时候有两个成员数组PlayerSingleBagDataLocalSaves 和 _playerSingleBagDataLocalSaves 其实这是同一个 只是C#的特殊写法; 序列化的值如下所示:

{"_playerSingleBagDataLocalSave":[{"itemID":3003,"count":1},{"itemID":3004,"count":2},{"itemID":3005,"count":3},{"itemID":3006,"count":4}],
"PlayerSingleBagDataLocalSaves":[{"itemID":3003,"count":1},{"itemID":3004,"count":2},{"itemID":3005,"count":3},{"itemID":3006,"count":4}]}

这串值用于本地PlayerPrefs存储,最后在读取出来反序列化,这时会出现问题,这两个字段都被反序列化到一个list里面去了,实际运行的时候这里只有四组数据,存储和读取之后变成了八组数据,其中一半是重复的。 经过测试,需要将最后一句去掉

public List PlayerSingleBagDataLocalSaves => _playerSingleBagDataLocalSaves;

在这里插入图片描述 这实在就是Newtonsoft.json的一个坑,所以一定要记录才行。

关注
打赏
1665909078
查看更多评论
立即登录/注册

微信扫码登录

0.0360s