问题标签 [json-annotation]

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 投票
0 回答
114 浏览

flutter - 如果第一个为空,则将其他键的值存储在飞镖模型中 - Flutter

我正在使用该json_annotation包来构建我的飞镖模型。

我有一种情况,我需要将 API 响应中的任一值存储在我的name密钥中。

API 正在返回两个密钥aliasname. 在我的模型中,我需要以这样的方式存储值,如果alias(非空)中有值,则name (模型中)将有一个alias值。否则,name(来自 API)密钥将存储在模型的name密钥中。

代码 -

有没有办法,我可以根据可用性将实际名称和别名存储到模型中的同一个键中?

我确实检查了JsonKey()对象。但找不到解决办法。

0 投票
1 回答
88 浏览

flutter - 颤振运行 pub 运行 build_runner 构建失败

[使用json注解和可序列化][1]

[不理解错误][2]

0 投票
2 回答
324 浏览

json - 颤振json_serializable丢失文件

我似乎不明白为什么它显示错误我创建了两个不同的 .g.dart 文件

但对于这个文件,它显示了缺失的部分。[警告] lib/Model/Supermodel.dart 上的 json_serializable:json_serializable: 缺少“part 'Supermodel.g.dart';”。

0 投票
1 回答
431 浏览

flutter - 在 ChopperClient 颤振中添加多个转换器

我正在使用 json-annotation 为不同的响应集创建不同的 .g.dart 类。现在,当我使用 Chopper Client 发出请求并将响应映射到模型类时,我正在创建转换器。但我只能为斩波器客户端分配一个转换器。我想要实现的是使用 get_it 包来初始化 chopper 客户端。如何在发出不同请求时为斩波器客户端分配不同的转换器。 这是 get_it 包用于初始化类的基类。

base.dart

我正在使用 HomeModelConverter 发出 Get 请求并将响应映射到 HomeModelResponse 的这个 ChopperService 类,并且这个 HomeModelConverter 在上面的 chopper 客户端对象中分配。

home_api_service.dart

这是特定于 HomeModelResponse 的转换器类。在 decodeJson 函数中,我们明确提到它来解码到 HomeModelResponse。

home_model_converter.dart

这是 HomeModelResponse,传入的响应将自动映射到其中。

home_model_response.dart

上面的代码对 home_api_service 工作正常,我得到了正确的响应。 现在我想创建另一个服务,例如 AddApiService。这将有不同的转换器。如何在斩波器客户端中动态更改转换器。现在 HomeModelConverter 在初始化时是硬编码分配的。我不想为每个转换器创建多个 ChopperClient。卡在这里。或任何创建通用转换器的选项

如果有人可以建议这种方法是否可行,或者是否有更好的方法可以遵循。

0 投票
1 回答
833 浏览

flutter - Flutter 改造 DioError [DioErrorType.other]:预期类型为 'List 的值?',但得到了“字符串”类型之一

我的响应 json 如下

我已经使用如下改造

我像下面这样从这里打电话

我的代码有什么问题。请帮助我..

0 投票
1 回答
824 浏览

java - Spring boot @JsonProperty 通过 parent.child 路径映射嵌套对象

我有以下数据结构通过 Http 调用进入我的服务器

然后我有以下实体类

无论哪种方式,我都无法让 spring boot 与 json 属性文本匹配(这两个值始终为空)......这可行吗?如果可以,怎么办?

我需要生成的最终 JSON 如下

所以基本上我需要将我的孩子信息附加到父母身上。

更新 我能够通过使用自定义 JsonDeserializer 来获得与父级扁平化的属性之一,如下所示

这仅适用于每个类使用 @JsonDeserialize(using = nameDeserializre.class)设置的一个属性......一旦我将两个反序列化器附加到两个属性,我开始收到有关 json 异常的错误。

谢谢

0 投票
1 回答
87 浏览

flutter - 我们可以使用 json_serializable 包来序列化和反序列化用户模型吗?

生成部分“UserModel.g.dart”后;成功,我在尝试做时遇到以下错误

这是我的 UserModel.dart,文件中没有任何错误。

当然,我可以手动映射每个值。但正如这里建议的那样https://flutter.dev/docs/development/data-and-backend/json,以防止

当您的项目变得更大时,手动解码效果不佳。手动编写解码逻辑会变得难以管理且容易出错。如果您在访问不存在的 JSON 字段时出现拼写错误,您的代码会在运行时引发错误。

我使用插件 json_serializable 对其进行自动化处理。但我收到以下错误:预期类型为“Map<String, dynamic>”的值,但得到类型为“UserModel$”的值之一

这个错误是由于不兼容而导致的还是我做错了什么?请回复。非常感谢。:)

0 投票
0 回答
61 浏览

openapi-generator - 为openapi生成的模型类添加注解

我需要使用 openapi 生成 APIclient,但是对于生成的某些模型类,我需要添加实现休息请求所需的额外注释,例如:

有些属性可以有空值,所以我只想包含 NONNULL 值,还需要忽略示例中的一些属性。如何在不修改生成的模型的情况下实现这一点,有没有办法使用 openapi 生成器进行这一生成。提前致谢。

0 投票
0 回答
42 浏览

java - 在 JSON 中使用变量并在 POJO 中基于节进行反序列化

我在下面定义了一个示例 JSON -

我有一个公共部分和另外两个部分(section1section2)。两个部分共有的数据在公共部分中定义。我必须将此 JSON 反序列化为 POJO。根据将作为参数传递的部分,应该为这些部分反序列化变量的值。如果我将 section1 作为参数传递,数据应该看起来像 -

如果我将 section2 作为参数传递,数据应该看起来像 -

我想知道这是否可以使用 Java 中的任何 JSON 注释来实现?

0 投票
1 回答
709 浏览

flutter - Flutter Freezed 模型升级后的 JsonSerializable 和 JsonKey 问题

我的应用程序运行正常,但是在 pub upgrade --major-versions 之后,我在所有模型上都遇到了问题。示例模型:

问题:

为了让它能在几周前的上一次升级中工作,我在pubspec.yaml中为json_annotation: '4.0.1' 和json_serializable: '4.1.4' 设置了一个固定版本,但我想知道是否还有其他方法更新这些软件包没有任何问题。

我错过了什么,我怎样才能达到与使用冻结之前相同的效果?