我需要将复杂的JSON blob反序列化为标准的.NET容器,以便在不了解JSON的代码中使用.它期望的事情是在标准的.NET类型,具体地Dictionary<string, object>或List<object>其中"对象"可以是原语或递归(词典或列表).
我不能使用静态类型来映射结果,并且JObject/JToken不适合.理想情况下,有一些方法(通过Contracts可能?)将原始JSON转换为基本的.NET容器.
我一直在寻找任何方式来哄骗JSON.NET反序列化器在遇到"{}"或"[]"时创建这些简单类型,但收效甚微.
任何帮助赞赏!
我刚刚将我的ASP Web API项目从.Net core 2.0升级到3.0。我在用
services.AddMvc()
.AddJsonOptions(options =>options.SerializerSettings.ContractResolver
= new DefaultContractResolver());
Run Code Online (Sandbox Code Playgroud)
以前是为了确保序列化JSON的小写字母。
升级到3.0后,出现此错误...
错误CS1061'IMvcBuilder'不包含'AddJsonOptions'的定义,找不到可以接受的扩展方法'AddJsonOptions'接受类型为'IMvcBuilder'的第一个参数(是否缺少using指令或程序集引用?)
根据Asp.Net Core 2.2中MvcJsonOptions的AddJsonOptions,Microsoft.AspNetCore.Mvc.Formatters.Json nuget包提供了AddJsonOptions扩展方法。我尝试安装/重新安装此程序,但仍然无法解决该方法。有趣的是,智能感知仅显示Microsoft.AspNetCore.Mvc.Formatters。即使我添加了Json nuget包,当我尝试添加using语句时也使用Xml。
有什么想法吗?该文档为AddJsonOptions只上升到.NET 2.2所以也许是方法已经在3.0赞成一些其他配置机制的被弃用?