问题标签 [jsonconverter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
81 浏览

c# - Newtonsoft.Json C# CustomJsonConverter - 根据通过的文化替换双分隔符

全部,尝试创建一个自定义的 JsonConverter,它在序列化为 Json 时根据作为参数传递的文化更改小数分隔符(类似于this)。
示例控制台应用程序:


产生以下输出:
["1,02",1.02,1.02]

问题:如何在将值写入双精度值时保留逗号分隔符?写入字符串会产生一个逗号,但在写入双倍时,它的作者会带有句点。
提前致谢

0 投票
1 回答
239 浏览

asp.net-core - 全局错误处理程序,包括模型绑定器错误

我在一个由 PenTest 机构测试的 AspNet Core 3.1 web-api 项目上工作,当不正确的输入数据导致包含有关项目代码内部信息的响应时,它们会标记情况,如下所示:

所以我们决定用一些中性的东西来改变“errors/$.flags”属性的消息,比如“不正确的输入数据”。

我通过提供自定义JsonConverter< int >属性类来整理这个特殊情况,并且它可以很好地为适当的模型属性进行装饰。另一个类似的问题是空集合元素导致这种响应,我通过在输入端点参数(IModelBinder接口的实现)上为复杂类提供自定义模型绑定器来修复。

该项目有很多端点和输入模型类,因此提供自定义 JsonConverters 或模型绑定器看起来无效且不能面向未来,因为每个新端点的输入都需要配备某种解决方案。那么问题来了——是否有可能有某种全局错误处理程序来覆盖模型绑定器错误?中间件中的标准 aspnet 核心错误处理程序无法处理模型绑定器错误,因为它们在实际调用操作之前发生在操作调用逻辑中。

或者可能有一种方法可以配置System.Text.Json功能,为发生绑定错误时抛出的各种JsonExceptions提供自定义错误消息?

0 投票
1 回答
834 浏览

api - JSON 值未在 cURL 中转换为 System.Boolean

我创建了布尔转换器,期望它会在属性 IsComplete 上自动使用,但在 cURL 中出现错误。我究竟做错了什么?

错误

转换器

属性

0 投票
0 回答
137 浏览

json.net - 如何在不递归调用 JsonConverter 的情况下使用 NewtonSoft JsonConverterAttribute 和 JToken.FromObject()

我从这个示例中获取了代码并更改了一些内容:

  1. 删除自定义构造函数并对CanConvert类型进行硬编码。
  2. 从通话中删除转换器JsonConvert.SerializeObject()JsonConvert.DeserializeObject()
  3. 向 Employee 类型添加了 JsonConverter 属性

所以我最终得到了这个控制台应用程序:

不幸的是,在序列化和反序列化时使用属性而不是显式指定转换器有一个副作用:赋值JToken t = JToken.FromObject(value);现在导致WriteJson()递归调用,导致堆栈溢出!

使用该属性而不是在项目被序列化/反序列化的任何地方指定转换器真的很好。

我试图在序列化/反序列化接口时添加一些通用类型信息,并且我想在大多数情况下重用序列化的默认行为。有没有其他方法可以在不调用JToken.FromObject()或其他任何会导致递归循环的情况下这样做?

已经尝试调用base.WriteJson()JsonConverter但它是一个抽象方法。

0 投票
1 回答
503 浏览

c# - 使用 System.Text.Json 序列化 BigInteger

我正在BigInteger使用以下方法将 a 序列化为 JSON System.Text.Json

这导致以下输出:

如果我添加一个将BigInteger值转换为a 的转换器ulong,它当然会失败,因为BigInteger值太大:

这是转换器:

我想要的输出是:

我知道这可以JsonWriter.WriteRawValue在 Json.NET 中实现,但我仅限于使用System.Text.Json.

有没有办法在不手动破解序列化字符串的情况下做到这一点?

0 投票
2 回答
204 浏览

asp.net-mvc - 使用 MissingMemberHandling.Error 时 NewtonSoft JSON 未引发异常

我们使用 Newtonsoft Json 转换器来反序列化 API 请求。由于我们不想接收不属于后端请求类的数据/成员,因此我们设置SerializerSettings.MissingMemberHandlingMissingMemberHandling.Error

但我们最终没有收到异常,而是为 API 调用提供了一个“空”请求对象: 在此处输入图像描述

为什么我们没有异常?

0 投票
1 回答
53 浏览

c# - 如何将具有索引的数组映射到具有自定义 JsonConverter 的对象

我已经看到了一些关于我正在尝试做什么的问题,但是他们似乎正在使用 JSON.Net,这是我不想使用的,因为 .NET Core / .NET 5 内置了 JsonSerializer。

我正在为 RuTorrent 调用 HTTP RPC 的 API,它以字典 <string, string[]> 进行响应。我想要做的是将此字符串数组的索引映射到一个对象。

来自 PostMan 的响应示例;

到目前为止,这是我的模型;

到目前为止,这就是我的转换器中的所有内容(请注意,.Dump() 是您可以在程序 LinqPad 中使用的一种方法,用于将对象的内容转储到窗口):

我不确定如何使用 Utf8JsonReader 参数。到目前为止,我已经尝试过反序列化和 .GetString() 但是它不断抛出 JsonException 并带有以下内容:

有人可以指出我正确的方向或指出我做错了什么吗?

谢谢。

0 投票
0 回答
77 浏览

c# - 在有时丢失的属性上使用 JsonConverter,以及检查单个项目或数组

在 Json 反序列化模型中,我有一个可以是单个项目或数组的类成员,因此我使用 JsonConverter 来处理它。但是,有时响应中也会缺少整个属性。该模型具有 Json 响应有时没有的属性,因此我使用的是[JsonProperty(Required = Required.Always)].

问题是当缺少的类属性通过ReadJsonJsonConverter 中的方法时,它会引发异常。

JsonConverter 中的异常

我的问题是我是否可以在 JsonConverter 中添加缺少的属性逻辑检查,还是需要按原样处理异常。

0 投票
2 回答
1001 浏览

c# - 使用 JsonConverter 在 C# 中自定义 JSON 反序列化

我在 .Net Core 中有两个课程

班上Ownership

我需要MeanInterval使用方法TimeSpan.FromTicks(Int64)TimeSpan.Ticks.

我的自定义 JsonConverter

我不知道如何实现该Read方法。 如何实现覆盖 Read 方法的自定义反序列化?

如果可能的话,你们向我提出另一种CanConvert方法的实现,我非常感谢。

0 投票
1 回答
38 浏览

json.net - Newtonsoft JsonConvert DeserializeObject 不能忽略实体错误的默认值?

这是示例代码:

我有一个包含 bool 列表的 TargetEntity,默认情况下,它设置为值的七个元素列表。

我想做的是从 JSON 反序列化,其中包含一个包含七个错误值的列表。但是,在反序列化它时,它似乎构造了一个包含 14 个值的列表,其中包括默认值,并像这样附加了从 JSON 中反序列 化的值{ true, true, true, true, true, true, true, false, false, false, false, false, false, false } 这里有什么问题?

这段代码有 C# 小提琴:https ://dotnetfiddle.net/VMIXeg