问题标签 [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.
c# - 如何将自定义 JsonConverter 应用于字典内列表中的值?
我有一个CustomConverter : JsonConverter<int>
整数,我需要向属性添加一个[JsonConverter(typeof(CustomConverter))]
属性Dictionary<string, List<int>>
。将自定义转换器应用于int
,List
或Dictionary
工作正常:
int
但是我不知道如何指定CustomConverter应该List
用于Dictionary
. 我怎样才能做到这一点?
json - 需要 Jolt Spec 将矩阵 json 转换为非规范化 json 格式
谁能帮我一个JOLT 规范,将我的矩阵类型 json 转换为非规范化 json。请在下面找到我的输入 json 和我预期的 josn 输出。
输入Json:
预期的 Json 输出:
我试图构建 JOLT 规范来转换这个 json。但挑战是我有多个带有“属性”标签的表的 json。
提前致谢!
c# - 为 appsettings.json 编写自定义转换器
我想创建一个 appsettings.json 转换器,它可以转换Symbols
为IReadOnlyCollection<Symbol>
. 转换器应将字符串拆分为/
,这将生成 BaseAsset/QuoteAsset。然后它应该检查是否QuoteAsset
等于StakeCurrency
。如果没有,则抛出异常。使用自定义转换器做到这一点的最佳方法是什么?我不想使用绑定。是否可以使用自定义 JsonConverter?
- 应用设置.json
- 课程
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 示例
flutter - 书:Flutter Apprentice - 尝试从 Api 响应中制作通用 ModelConverter
在Raywenderlich的优秀 Flutter书中,第 13 章致力于使用库Chopper和JsonConverter从 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 通用的最佳方法是什么?提前谢谢。
c# - c# JsonConverter反序列化包含多态对象的Json
我无法弄清楚我做错了什么。我正在尝试反序列化具有多态对象的 JSON。这是我的基本课程和设置
在我的 AccountConverter.cs 中,我创建了一个 ReadJson 方法,如下所示
我在我的响应方法中调用我的 deserializeObject
我不断在 ReadJson 方法的第一行收到错误。“从 JsonReader 读取 JObject 时出错。当前 JsonReader 项不是对象。StartArray。路径....”
我是否以正确的方式处理这个问题?
c# - 我是否需要一个单独的自定义 JsonConverter 对象和该对象的数组?
我正在从文件中导入 Json。假设它看起来像这样
我要导入的类看起来像这样
ConfigConverter 是一个自定义的 JsonConverter,它检查“类型”并确定设备应该是什么 IConfig 实现。如果我只反序列化单个设备,这非常有效,但是一旦我移动到一组设备,转换器就会给我一个错误。显然,设备阵列不像单个设备那样反序列化。
有没有一种原生方式可以说“对于这个阵列中的每个设备,使用这个转换器”?或者我是否必须制作一个单独的自定义转换器来处理一系列设备。我不希望在多个客户转换器中使用基本相同的代码。
ConfigConverter 中的 ReadJson 看起来像这样
这适用于单个对象,不适用于数组。我可以设想重写它以使其与数组一起使用的方法,但所有这些都会导致它停止与单个对象一起使用。寻找最干净、最优雅的解决方案,让我拥有一个可以同时处理单个对象和该对象数组的转换器。
c# - 使用 newtonsoft 自定义序列化程序反序列化外部类属性
由于下面的示例非常详细,我先提出了抽象问题。
抽象的问题
我想反序列化不受我控制的类的两个属性。这些属性来自 int/foreign 类 NodeId 类型。有两个静态类提供公共字段作为常量。我想从 JSON 中反序列化给定静态类的名称,并从实例中的给定静态类中设置相应的值。
我希望能够从 JSON 中读取的内容:
我现在需要用 JSON 编写它可以工作的内容(这些是来自静态类的“翻译”值;有关更多详细信息,请参见完整示例):
我的问题是:
- 我无法用 JsonConverter 属性装饰外部类的属性
- 我无法对类型做出反应,
int
或者NodeId
因为它太笼统
我的解决方法:
- 以某种方式用我的“外部”属性装饰外国类属性!?!?这可能吗?
- 编写一个自定义反序列化器,它通过反射对属性名称做出反应!?!?这可能吗?
如果上述解决方案都不起作用,我的工作是摆脱它:
- 从类派生并使用自定义反序列化器装饰派生类中的字段。
- 创建我自己的反序列化类,并使用我的类中的值创建外部类的实例。
包含所有细节的示例
我正在使用OPC 基金会的 OPC UA 堆栈中的一个类,我想反序列化它。我感兴趣的课程的摘录如下所示:
这种类在代码中的实例化如下所示:
用于常量的类如下所示:
和这个:
创建Argument
硬编码实例非常简单直接。从 JSON 反序列化它会变得很棘手,因为我无法为属性配备自定义属性,也无法对 NodeId 和 int 类型做出反应。
提前致谢
c# - 用于模型绑定自定义类型的方法
我的 API 控制器有一个如下所示的端点:
command
看起来像这样:
这Id
是一个看起来像这样的值对象:
客户端会发送这个:
现在我希望模型绑定能够自动工作。但我很困惑如何做到这一点。
我实现了IModelBinder
and IModelBinderProvider
,但这没有帮助。然后我注意到文档是这样说的:
通常不应该用于将字符串转换为自定义类型,TypeConverter 通常是更好的选择。
所以我实施了一个TypeConverter
,这也没有帮助。
然后我想实现一个JsonConverter<T>
,但是框架现在使用了 Newtonsoft 以外的东西,所以我没有走多远。
所以我的问题是:我必须做些什么来促进我的自定义类型的自动绑定。我只需要知道要走哪条路,剩下的我会想办法。
(作为一个附带问题:请帮助我了解何时应该实现模型绑定器、类型转换器和 json 转换器。)
refit - 改装不使用配置的 JsonConverter
我正在使用 Refit 进行 HTTP 调用,它对于需要直接 JSON 结构的请求按预期工作。我们现在有一个要求,其中 JSON 请求的表示方式与下面的略有不同。
类(具有以下两个属性)
预期的 JSON 结构:
我们已经实现了一个负责这种转换的 JsonConverter。但是当我像下面这样将转换器传递给 Refit 时,该类没有像我们预期的那样序列化。
看起来 Refit 似乎不知道所配置的转换器。
我不确定我在这里缺少什么。有什么帮助吗?