用json.net序列化匿名类型似乎已经失败
本文关键字:失败 类型 json net 序列化 | 更新日期: 2023-09-27 18:22:14
意识到问题似乎在RavenDb库而不是json.net库中后的最新编辑
到目前为止,我一直使用这段代码来序列化匿名类型:
using Raven.Imports.Newtonsoft.Json;
var anon = new { errors = new string[] { "Login error" } };
var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
var str = JsonConvert.SerializeObject(anon, Formatting.None, settings);
这是在RavenDb2.x.中嵌入了json.net
最近我开始了一个新项目。它使用最新的RavenDb3.x.
现在,当我序列化一个匿名类型时,我会在结果字符串中获得其他字段,例如:
{"<errors>i__Field":["Login error"],"errors":["Login error"]}
感谢
在RavenDb3.x中进行了更改。因此有两种解决方案:
- 请改用Json.net库
-
或者自定义这样的设置:
ContractResolver=new CamelCasePropertyNamesContractResolver(){DefaultMembersSearchFlags=System.Reflection.BindingFlags.Public|System.Reflecton.BindingFlags.Instance}
(请注意,DefaultMembersSearchFlags被标记为已过时)