json.net相关内容

在 json.net 中使用非公共设置器反序列化公共属性

假设我有以下课程 - 公共A类{公共 int P1 { 获取;内部集;}} 使用 json.net,我可以使用 P1 属性序列化类型.但是,在反序列化期间,不设置 P1.在不修改 A 类的情况下,是否有一种内置方式来处理这个问题?就我而言,我正在使用来自不同程序集的类并且无法修改它. 解决方案 是的,您可以使用自定义 ContractResolver 使内部属性可写入 Json.Net ..
发布时间:2022-01-11 22:30:55 其他开发

在 Json.net 中全局设置 IgnoreSerializableAttribute

我正在开发一个 ASP.NET WebApi (Release Candidate) 项目,我正在使用多个标有 [Serializable] 属性的 DTO.这些 DTO 不在我的控制范围内,因此我无法以任何方式修改它们.当我从 get 方法返回其中任何一个时,生成的 JSON 包含一堆 k__BackingFields,如下所示: k__BackingField=Bobby ..
发布时间:2022-01-11 22:30:48 其他开发

你怎么“真的"?使用 Newtonsoft.Json 序列化循环引用对象?

我在使用 Newtonsoft.Json 从我的 ASP.NET Web API 控制器正确序列化一些数据时遇到问题. 这就是我认为正在发生的事情 - 如果我错了,请纠正我.在某些情况下(特别是当数据中没有任何循环引用时)一切都像您期望的那样工作 - 填充对象的列表被序列化并返回.如果我在模型中引入导致循环引用的数据(如下所述,即使设置了 PreserveReferencesHandling ..
发布时间:2022-01-11 22:30:41 C#/.NET

'无法从程序集'Microsoft.AspNetCore.Mvc.Formatters.Json 加载类型'Microsoft.AspNetCore.Mvc.MvcJsonOptions',版本= 3.0.0.0

我在我的 netcoreapp3.0 Web 应用程序中使用 netstandard2.1 库.在 Startup 中添加我的服务时,我收到以下错误: '无法加载类型'Microsoft.AspNetCore.Mvc.MvcJsonOptions'程序集 'Microsoft.AspNetCore.Mvc.Formatters.Json, Version=3.0.0.0 我还在我的类库 ..

使用 Newtonsoft JSON 的 ObjectCreationHandling 说明?

我正在追踪一个错误,我注意到 Newtonsoft JSON 会将项目附加到已在默认构造函数中初始化的 List 中.我在 C# 聊天中与一些人进行了更多挖掘和讨论,我们注意到这种行为不适用于所有其他集合类型. https://dotnetfiddle.net/ikNyiT 使用系统;使用 Newtonsoft.Json;使用 System.Collections.Generic;使用 ..
发布时间:2022-01-11 22:30:08 C#/.NET

从类中获取 JSON 属性名称列表以在查询字符串中使用

如果我有一个 C# 模型类,JSON.net 使用它来绑定来自序列化 JSON 字符串的数据,有没有办法可以从该类创建查询字符串以发出初始请求? 模型类示例: 公共类模型{[JsonProperty(PropertyName = "id")]公共长 ID { 获取;放;}[JsonProperty(PropertyName = "some_string")]公共字符串 SomeString ..
发布时间:2022-01-11 22:29:53 C#/.NET

如何让 JSON.NET 将日期/时间序列化为 ISO 8601?

我有一个 Web API 应用程序,可将 JSON 返回给可能未使用 Microsoft 技术的消费者.当我的控制器以 JSON 形式返回具有 DateTime 属性的对象时,它会以这种格式序列化日期: 2017-03-15T00:00:00-04:00 这让消费者有点头疼,因为他们希望它采用 ISO 8601 格式.一些研究告诉我 JSON.NET 现在默认使用 ISO 8601(我 ..
发布时间:2022-01-11 22:29:46 其他开发

Json.NET 不区分大小写的属性反序列化

Json.NET 将“不区分大小写的属性反序列化"列为宣传的功能之一.我已经阅读过,将首先尝试匹配指定属性的大小写,如果未找到匹配项,则执行不区分大小写的搜索.然而,这似乎不是默认行为.请参阅以下示例: var 结果 =JsonConvert.DeserializeObject>("{key: 123, value:\"测试值\"}");//结 ..
发布时间:2022-01-11 22:29:31 C#/.NET

JSON.NET 如何删除节点

我有一个像下面这样的 json: {“d":{“结果": [{“__元数据":{},“prop1":“value1",“道具2":“价值2",“__some":“价值"},{“__元数据":{},“prop3":“value1",“道具4":“价值2",“__some":“价值"},]}} 我只想将此 JSON 转换为不同的 JSON.我想从 JSON 中去掉“_metadata"和“_som ..
发布时间:2022-01-11 22:29:14 C#/.NET

Newtonsoft Json.net - 如何序列化流的内容?

我需要将内存流转换为 JSON 任意内容.这是我正在尝试做的一个简单示例: 类程序{类 TestClass { public int Test1;}静态无效主要(字符串 [] 参数){var ms = new MemoryStream();var writer = new StreamWriter(ms);writer.Write(new TestClass());writer.Flush(); ..
发布时间:2022-01-11 22:28:48 C#/.NET

如何将时区偏移量添加到 JSON.NET 序列化?

我的 DateTimePicker 绑定到属性: picker.DataBindings.Add("Value", this, "EventDate");...私人日期时间事件日期;公共日期时间事件日期{得到{var offset = TimeZoneInfo.Local.GetUtcOffset(eventDate);字符串 json = JsonConvert.SerializeObjec ..
发布时间:2022-01-11 22:28:41 C#/.NET

使用 JSON.NET 序列化对象时如何添加自定义根节点?

我为我的一些对象添加了一个自定义属性,如下所示: [JsonCustomRoot("status")]公共类StatusDTO{公共 int StatusId { 获取;放;}公共字符串名称 { 获取;放;}公共日期时间创建{获取;放;}} 属性很简单: 公共类 JsonCustomRoot :Attribute{公共字符串 rootName { 获取;放;}公共 JsonCustomRoo ..
发布时间:2022-01-11 22:28:35 C#/.NET

JSON.NET 中基于属性的类型解析

是否可以基于 JSON 对象的属性使用 JSON.NET 覆盖类型解析?基于现有的 API,看起来我需要一种接受 JsonPropertyCollection 并返回要创建的 Type 的方法. 注意:我知道 TypeNameHandling 属性,但是添加一个 $type 属性.我无法控制源 JSON. 解决方案 这似乎是通过创建自定义 JsonConverter 并在反序列化之前 ..
发布时间:2022-01-11 22:28:11 C#/.NET

Newtonsoft JSON - 动态对象

我正在使用 Newtonsoft JSON 库对传入的原始 JSON 执行动态反序列化,并发现了一些我无法解释的东西. 起点是以下 JSON 字符串: {“任务": {“到期日期":“2012-12-03T00:00:00"}} 没什么太复杂的... 在代码中我正在这样做: var dyn = JsonConvert.DeserializeObject(rawJson);日期时间 ..
发布时间:2022-01-11 22:27:51 C#/.NET

如何在没有格式化的情况下序列化 JObject?

我有一个使用 LINQ to JSON 构建的 JObject(我正在使用 Json.Net)(也由同一个库提供).当我在 JObject 上调用 ToString() 方法时,它会将结果输出为格式化的 JSON. 如何将格式设置为“无"? 解决方案 调用JObject的ToString(Formatting.None)方法. 或者,如果您将对象传递给 JsonConvert. ..
发布时间:2022-01-11 22:27:26 其他开发

Json.Net - 从“System.Net.IPAddress"上的“ScopeId"获取值时出错

我正在尝试使用 Json.Net 序列化 IPEndpoint 对象,但出现以下错误: 从“System.Net.IPAddress"上的“ScopeId"获取值时出错. 错误的原因是我只使用端点中 IPAddress 对象的 IPV4 属性.当 Json 解析器尝试解析 IPv6 部分时,它会访问 ScopeID 属性,该属性会引发套接字异常“所引用的对象类型不支持尝试的操作"(Mi ..
发布时间:2022-01-11 22:27:17 C#/.NET