json.net相关内容

自定义 JsonConverter WriteJson 不会改变子属性的序列化

我一直觉得 JSON 序列化程序实际上会遍历整个对象的树,并在遇到的每个接口类型对象上执行自定义 JsonConverter 的 WriteJson 函数 - 并非如此. 我有以下类和接口: 公共接口 IAnimal{字符串名称 { 获取;放;}字符串说话();列出孩子{得到;放;}}公共类猫:IAnimal{公共字符串名称 { 获取;放;}公共列表孩子 ..
发布时间:2022-01-11 22:27:08 C#/.NET

使用 JSON.net 获取 JToken 的名称/密钥

我有一些像这样的 JSON [{“移动网站内容":{“文化":“en_au",“钥匙": [“Key1 的名称"]}},{“页面内容":{“文化":“en_au",“页": [“关于我们/"]}}] 我将其解析为 JArray: var 数组 = JArray.Parse(json); 然后,我循环遍历数组: foreach(数组中的变量内容){} content 是一个 JToken ..
发布时间:2022-01-11 22:26:35 C#/.NET

将 JObject 转换为 Dictionary<string, object>.是否可以?

我有一个 Web API 方法,它接受任意 json 有效负载到 JObject 属性中.因此,我不知道会发生什么,但我仍然需要将其转换为 .NET 类型.我想要一个 Dictionary 以便我可以以任何我想要的方式处理它. 我进行了很多搜索,但找不到任何东西,最终开始了一种混乱的方法来进行这种转换,一个键一个键,一个值一个值.有什么简单的方法吗? 输入 ..
发布时间:2022-01-11 22:26:26 C#/.NET

json.net 有关键方法吗?

如果我的回复有关键“错误",我需要处理错误并显示警告框. json.net 中是否存在“haskey"方法?喜欢: var x= JObject.Parse(string_my);if(x.HasKey["error_msg"])MessageBox.Show("错误!") 解决方案 只需使用 x["error_msg"].如果该属性不存在,则返回 null. ..
发布时间:2022-01-11 22:26:20 C#/.NET

如何添加元数据来描述 JSON.Net 中哪些属性是日期

我想在我的 json 中添加一个元数据属性,以便客户端可以知道哪些属性是日期. 例如,如果我有这样的对象: {"notADate": "一个值","aDate": "2017-04-23T18:25:43.511Z",“另一个日期":“2017-04-23T18:25:43.511Z"} 我想添加一个元数据属性来告诉消费者哪些属性被视为日期,如下所示: {"_date_properti ..
发布时间:2022-01-11 22:26:11 C#/.NET

Json.net 无法加载属于类对象的某些属性?

注意:我添加此社区 wiki 条目是为了节省我刚刚调试此问题的时间. 我有一个具有多个公共属性的类对象.我可以使用 JSON.net 很好地序列化它.但是当我加载 JSON 文本并使用 JsonConvert.DeserializeObject 对其进行反序列化时,某些字段在当时确实具有有效值时被设置为 NULL的序列化.我手动检查了序列化的 JSON 字符串,我肯定在文本中看到了 NU ..
发布时间:2022-01-11 22:26:00 C#/.NET

将 JSON 字段升级为类结构的最佳方法

只是想知道是否有人知道将 JSON 结构反序列化升级为新类类型的最佳方法. 进一步解释遗留值是 公共字符串作者; 这已在 api 中更新为以下内容 公共类作者{公共字符串名称;公共字符串电子邮件;公共字符串网址;}公共作者作者; 所以现在我遇到了一个问题,即任何遗留数据都不能正确反序列化,因为它曾经是一个字符串,现在它是一个类. 我目前的解决方案是,如果它无法反序列化,则将 ..
发布时间:2022-01-11 22:25:31 其他开发

对属性的 Json DeserializeObject 运行转换

假设一个json字符串如下: string json = '{"string_property":"foo_bar", ... 这里的其他对象 ...}'; 我想知道是否有一种方法可以对解析的对象运行转换,以便在运行以下方法后得到 foo_bar 而不是获取 foo_bar(可以是任何东西) public string Transform(string s) {返回 s.Replace("_ ..
发布时间:2022-01-11 22:25:25 C#/.NET

覆盖 Json 反序列化带有前导零的数字作为十进制而不是八进制值

我正在生成一个 json 对象, {“号码":0100} 当这个对象在 C# 中使用 Newtonsoft.Json 反序列化时,0100 被视为八进制数,因为前导零.有没有办法覆盖此功能并使其将数字视为十进制整数? 解决方案 我看过 JsonTextReader.ParseNumber() (数字读取的“魔法"发生的方法).我会说这是不可行的.八进制大小写特别处理 bool fla ..
发布时间:2022-01-11 22:25:14 C#/.NET

如何强制为空值调用 JsonConverter.WriteJson()

我想用一些元数据将一些属性包装在 JSON 对象中,无论它是否为空.但是,如果属性为 null,则不会调用我的自定义 JsonConverter.WriteJson 覆盖. 当属性不为空时我得到什么: {"Prop":{"Version":1, "Object":{"Content":"abc"}}} 当它为空时我得到: {"Prop":null} 当它为空时我想要: {"Prop ..
发布时间:2022-01-11 22:25:05 C#/.NET

在返回给客户端之前修改 JSON 的通用方法

我正在寻找一种通用方法,该方法允许我修改返回给客户端的对象的 JSON,特别是删除返回对象中的某些属性.类似于 这里的建议. 修改是不确定的,因为它们是根据与用户关联的规则根据请求确定的.所以这不适合缓存的方法. 我已经查看了几种方法.最明显的选择是 JsonConverter,但是这有一些问题,如 here,这里和这里. 这种方式的主要问题是在WriteJson中调用JToke ..
发布时间:2022-01-11 22:24:57 C#/.NET

使用非默认构造函数会破坏 Json.net 中的反序列化顺序

使用 Json.net 反序列化具有父子关系的对象图时,使用非默认构造函数会破坏反序列化的顺序,使得子对象在其父对象之前被反序列化(构造和分配属性),从而导致空引用. 从实验看来,所有非默认构造函数对象仅在所有默认构造函数对象之后才被实例化,奇怪的是,它似乎与序列化的顺序相反(子对象在父对象之前). 这会导致应该引用其父对象(并且已正确序列化)的“子"对象被反序列化为空值. 这似 ..
发布时间:2022-01-11 22:24:51 C#/.NET

以数字为键反序列化 JSON

编辑:我想出了如何获取每个键,现在问题是循环遍历每个集合.底部的解决方案! 我正在尝试解析具有以下格式的 JSON 有效负载: {“版本":“1.1",“0":{“艺术家":“艺术家 1",“标题":“标题 1"},“1":{“艺术家":“艺术家 2",“标题":“标题 2"},...“29":{“艺术家":“艺术家 30",“标题":“标题 30"}} 我不需要 version 键,所 ..
发布时间:2022-01-11 22:24:09 C#/.NET

Json.NET - 序列化没有属性名称的泛型类型包装器

我有一个泛型类型,它包装了一个原始类型以赋予它值相等语义 公共类ValueObject;{公共 T 值 { 获取;}公共值对象(T 值)=>价值=价值;//各种其他相等成员等...} 它的用法如下: 公共类 CustomerId : ValueObject{public CustomerId(Guid value) : base(value) { }}公共类 EmailAddress : V ..
发布时间:2022-01-11 22:23:59 C#/.NET

将 .Net 对象序列化为 json,使用 xml 属性进行控制

我有一个 .Net 对象,我已将其序列化为 Xml,并使用 Xml 属性进行装饰.我现在想将相同的对象序列化为 Json,最好使用 Newtonsoft Json.Net 库. 我想直接从内存中的 .Net 对象转到 Json 字符串(无需先序列化为 Xml).我不希望向类中添加任何 Json 属性,而是希望 Json 序列化程序使用现有的 Xml 属性. 公共类世界{[Xml忽略]pub ..
发布时间:2022-01-11 22:23:42 C#/.NET

Newtonsoft.json 中的 ReferenceLoopHandling.Ignore 究竟做了什么?

谁能给我一个可以使用它的场景.我对 ReferenceLoopHandling.Ignore 的理解是,如果您有一个引用对象 B 和 B 引用 C 和 C 再次引用 A (A->B->C->A) 的对象 A,那么在序列化时,它将在 C 和 A 之间陷入无限循环,可以使用下面的方法来避免.我说的对吗? JsonConvert.SerializeObject(数据,Formatting.Inden ..
发布时间:2022-01-11 22:23:36 C#/.NET

JSON.NET JObject 键比较不区分大小写

我正在使用 Newtonsoft Json.net 来解析 JSON 字符串.我将字符串转换为 JObject.当通过键访问元素的值时,我希望比较不区分大小写.在下面的代码中,我使用“FROM"作为键.我希望它在 json["FROM"].ToString() 行返回字符串“1".但它失败了.是否可以使下面的代码工作? String ptString = "{from: 1, to: 3}";v ..
发布时间:2022-01-11 22:23:28 C#/.NET

使用 JSON.NET 序列化/反序列化动态属性名称

我有以下课程: 公共类 MyRequest{公共字符串类型 {get;set;}公共字符串源 {get;set;}} 我想从名为 Type 的 JSON 字段中序列化/反序列化 Source 的值,例如: {“类型":“银行",“银行":“一些价值"} 或 {“类型":“卡片","card": "一些价值"} 两者都绑定到 Source 属性. 解决方案 你可以创建一个自定义 ..
发布时间:2022-01-11 22:23:18 C#/.NET