问题标签 [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 投票
2 回答
351 浏览

c# - 如何将自定义 JsonConverter 应用于字典内列表中的值?

我有一个CustomConverter : JsonConverter<int>整数,我需要向属性添加一个[JsonConverter(typeof(CustomConverter))]属性Dictionary<string, List<int>>。将自定义转换器应用于int,ListDictionary工作正常:

int但是我不知道如何指定CustomConverter应该List用于Dictionary. 我怎样才能做到这一点?

0 投票
1 回答
64 浏览

json - 需要 Jolt Spec 将矩阵 json 转换为非规范化 json 格式

谁能帮我一个JOLT 规范,将我的矩阵类型 json 转换为非规范化 json。请在下面找到我的输入 json 和我预期的 josn 输出。

输入Json:

预期的 Json 输出:

我试图构建 JOLT 规范来转换这个 json。但挑战是我有多个带有“属性”标签的表的 json。

提前致谢!

0 投票
1 回答
161 浏览

c# - 为 appsettings.json 编写自定义转换器

我想创建一个 appsettings.json 转换器,它可以转换SymbolsIReadOnlyCollection<Symbol>. 转换器应将字​​符串拆分为/,这将生成 BaseAsset/QuoteAsset。然后它应该检查是否QuoteAsset等于StakeCurrency。如果没有,则抛出异常。使用自定义转换器做到这一点的最佳方法是什么?我不想使用绑定。是否可以使用自定义 JsonConverter?

  • 应用设置.json
  • 课程
0 投票
0 回答
266 浏览

c# - ASP.NET Core 5 既不尊重 JsonConverter 也不尊重 TypeConverter

标题非常不言自明。ASP.NET Core 5 既不尊重 JsonConverter 也不尊重 TypeConverter。

例如,符号"TRX/USDT"应该被拆分/并转换new Symbol("TRX", "USDT")为我已经这样做过的。基本上,我想services.Configure<BacktestOptions>(hostingContext.Configuration.GetSection(BacktestOptions.Backtest))自动解决它。

public IReadOnlyCollection<string> Symbols { get; set; }工作正常,但public IReadOnlyCollection<Symbol> Symbols { get; set; }不能,因为它不能识别转换器类。

这个问题Asp.Net Core 3.1 Appsettings not respecting JsonConverter,回答它的人指出 TypeConverter 应该工作。

应用设置.json

片段

此外,JsonConverter 示例

0 投票
1 回答
318 浏览

flutter - 书:Flutter Apprentice - 尝试从 Api 响应中制作通用 ModelConverter

在Raywenderlich的优秀 Flutter书中第 13 章致力于使用库ChopperJsonConverter从 api 获取响应。

Github 中的代码在这里

他还建议使用像函数式编程这样的响应包装器,类型为 Success/Error。

从响应到成功/错误包装器的 ModelConverter,适用于 APIRecipeQuery 模型,并且仅在一行中使用一种方法final recipeQuery = APIRecipeQuery.fromJson(mapData);。进行泛型转换似乎很合乎逻辑,因为它是一个非常有用的类。

因此,我尝试通过在构造函数中将模型作为参数传递:

recipe_service.dart我用调用它converter: ModelConverter(model: APIRecipeQuery),但我不知道如何静态引用模型,也无法访问该方法model.fromJson

接下来,我尝试只传递函数转换器:

在 API 中使用 getter,并recipe_service.dart使用converter: ModelConverter(fromJson: APIRecipeQuery.fjConverter)

但我无法让它工作。

使 ModelConverter 通用的最佳方法是什么?提前谢谢。

0 投票
0 回答
101 浏览

c# - c# JsonConverter反序列化包含多态对象的Json

我无法弄清楚我做错了什么。我正在尝试反序列化具有多态对象的 JSON。这是我的基本课程和设置

在我的 AccountConverter.cs 中,我创建了一个 ReadJson 方法,如下所示

我在我的响应方法中调用我的 deserializeObject

我不断在 ReadJson 方法的第一行收到错误。“从 JsonReader 读取 JObject 时出错。当前 JsonReader 项不是对象。StartArray。路径....”

我是否以正确的方式处理这个问题?

0 投票
0 回答
36 浏览

c# - 我是否需要一个单独的自定义 JsonConverter 对象和该对象的数组?

我正在从文件中导入 Json。假设它看起来像这样

我要导入的类看起来像这样

ConfigConverter 是一个自定义的 JsonConverter,它检查“类型”并确定设备应该是什么 IConfig 实现。如果我只反序列化单个设备,这非常有效,但是一旦我移动到一组设备,转换器就会给我一个错误。显然,设备阵列不像单个设备那样反序列化。

有没有一种原生方式可以说“对于这个阵列中的每个设备,使用这个转换器”?或者我是否必须制作一个单独的自定义转换器来处理一系列设备。我不希望在多个客户转换器中使用基本相同的代码。

ConfigConverter 中的 ReadJson 看起来像这样

这适用于单个对象,不适用于数组。我可以设想重写它以使其与数组一起使用的方法,但所有这些都会导致它停止与单个对象一起使用。寻找最干净、最优雅的解决方案,让我拥有一个可以同时处理单个对象和该对象数组的转换器。

0 投票
0 回答
26 浏览

c# - 使用 newtonsoft 自定义序列化程序反序列化外部类属性

由于下面的示例非常详细,我先提出了抽象问题。

抽象的问题

我想反序列化不受我控制的类的两个属性。这些属性来自 int/foreign 类 NodeId 类型。有两个静态类提供公共字段作为常量。我想从 JSON 中反序列化给定静态类的名称,并从实例中的给定静态类中设置相应的值。

我希望能够从 JSON 中读取的内容:

我现在需要用 JSON 编写它可以工作的内容(这些是来自静态类的“翻译”值;有关更多详细信息,请参见完整示例):

我的问题是:

  1. 我无法用 JsonConverter 属性装饰外部类的属性
  2. 我无法对类型做出反应,int或者NodeId因为它太笼统

我的解决方法:

  1. 以某种方式用我的“外部”属性装饰外国类属性!?!?这可能吗?
  2. 编写一个自定义反序列化器,它通过反射对属性名称做出反应!?!?这可能吗?

如果上述解决方案都不起作用,我的工作是摆脱它:

  1. 从类派生并使用自定义反序列化器装饰派生类中的字段。
  2. 创建我自己的反序列化类,并使用我的类中的值创建外部类的实例。

包含所有细节的示例

我正在使用OPC 基金会的 OPC UA 堆栈中的一个类,我想反序列化它。我感兴趣的课程的摘录如下所示:

这种类在代码中的实例化如下所示:

用于常量的类如下所示:

和这个:

创建Argument硬编码实例非常简单直接。从 JSON 反序列化它会变得很棘手,因为我无法为属性配备自定义属性,也无法对 NodeId 和 int 类型做出反应。

提前致谢

0 投票
1 回答
55 浏览

c# - 用于模型绑定自定义类型的方法

我的 API 控制器有一个如下所示的端点:

command看起来像这样:

Id是一个看起来像这样的值对象:

客户端会发送这个:

现在我希望模型绑定能够自动工作。但我很困惑如何做到这一点。

我实现了IModelBinderand IModelBinderProvider,但这没有帮助。然后我注意到文档是这样说的:

通常不应该用于将字符串转换为自定义类型,TypeConverter 通常是更好的选择。

所以我实施了一个TypeConverter,这也没有帮助。

然后我想实现一个JsonConverter<T>,但是框架现在使用了 Newtonsoft 以外的东西,所以我没有走多远。

所以我的问题是:我必须做些什么来促进我的自定义类型的自动绑定。我只需要知道要走哪条路,剩下的我会想办法。

(作为一个附带问题:请帮助我了解何时应该实现模型绑定器、类型转换器和 json 转换器。)

0 投票
1 回答
52 浏览

refit - 改装不使用配置的 JsonConverter

我正在使用 Refit 进行 HTTP 调用,它对于需要直接 JSON 结构的请求按预期工作。我们现在有一个要求,其中 JSON 请求的表示方式与下面的略有不同。

类(具有以下两个属性)

预期的 JSON 结构:

我们已经实现了一个负责这种转换的 JsonConverter。但是当我像下面这样将转换器传递给 Refit 时,该类没有像我们预期的那样序列化。

看起来 Refit 似乎不知道所配置的转换器。

我不确定我在这里缺少什么。有什么帮助吗?