我有一个fixedPoint数学库对象,在几个字段中有实际的值,然后像十亿个属性,似乎保存了这些值的转换版本,以便沿着或其他东西?
I.E.
//important info
public fp x = 0;
public fp y = 0;
//not important info
public fp4 xxxx { get; }
public fp4 xxxy { get; }
public fp4 xxyx { get; }
etc times a billion...
字符串
显然,我唯一希望序列化的是重要的变量。我花了几个小时试图弄清楚为什么json试图比较我没有做的变量,只是发现这是因为这些属性,而它正在检查循环引用,并抛出我吨的错误。现在我正在撕扯我的头发,看起来应该是基本的功能XD。如有任何帮助,我们将不胜感激。如果我不需要编辑库文件本身,那就更好了,因为如果我从那个仓库更新,那可能会中断。
重申一下,我只想序列化字段。无属性。
编辑:对于其他有这个问题的人。我不能让Newtonsoft做我想做的事情,但是常规的内置JsonUtility工作得很好,没有额外的步骤:
第一个月
我以前试过,但有问题,原来我愚蠢的自我忘记了我的一个结构上的[Serializable]标签非常尴尬。😅
但在那之后,我意识到它也不适合我的其他一些不相关的需求,所以我最终切换到OdinInspector序列化器,它也工作得很好,没有任何其他步骤。它甚至支持序列化System.Object!Sirenix.Serialization.SerializationUtility.SerializeValue(data, Sirenix.Serialization.DataFormat.JSON);
个
显然,我想要的是足够基本的功能,使默认的其他东西哈哈。
感谢所有回应的人!对于那些投反对票的人,我不知道你们还想从我这里得到什么
2条答案
按热度按时间yh2wf1be1#
如果可以修改属性声明
你可以在不需要的 prop 上使用
[JsonIgnore]
属性。定义忽略 prop 列表
使用这个助手https://github.com/jitbit/JsonIgnoreProps。可以指定要忽略的成员列表。
用它就像
字符串
或使用自定义合约解析器,过滤掉除字段以外的所有内容
注意-我没有测试它,因为现在没有能力,你可能需要调整它
型
然后像这样使用它:
型
wlsrxk512#
我假设问题可能出在你试图保存的数据类型上。
public int count = 0;
在你的例子中,fp应该是原始类型和可序列化的。对存储此信息的对象的相同限制。如果定点数据不能被序列化,那么你应该把它转换成某种可以序列化的类型。例如:
字符串