Newtonsoft.Json 修改记录
Newtonsoft.Json 修改记录 1.Newtonsoft.Json 可以反序列 但不能反序列化 KeyValuePaire<TKey,TValue>,是因为: KeyValuePaire 的两个属性 Key,Value 都是只读的.且,没有默认构造函数. 在文件:Newtonsoft.JsonNewtonsoft.JsonUtilitiesReflectionUtils.cs 里有一个函数:HasDefaultConstructor 作者的判断里有: 只要是值类型,就会有默认构造函数. 这是不对的. 去掉 下面这两句: if (t.IsValueType) 2.对于 具有属性 (Attribute) Browsable = false 是不用序列化的. UtilitiesReflectionUtils.cs (GetFieldsAndProperties 487行后添加) 代码 3. DateTime序列化错误: JsonWriter.cs (WriteValue) 修改 1036行 代码 4.循环引用自己的问题。 JsonSerializer.cs (WriteMemberInfoProperty) 838 行: 修改 case ReferenceLoopHandling.Error: 再狠点:JsonSerializer.cs (SerializeObject) 879 行。 添加: if (writer.SerializeStack.Count > 0 && writer.SerializeStack[0].GetType() == value.GetType()) return; 会生成:带有属性名和空值的自循环体。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |