问题标签 [json-serializable]

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 回答
28 浏览

flutter - 添加双类型属性后,JsonSerializable 不返回对象

我使用JsonSerializable从 json 生成了 Item 模型实例,我得到了这个生成的代码。但是在我添加了双类型属性(价格)后它不会返回一个项目。没有它它工作

然后我尝试通过更改双重解析来修复它并成功

这是我的模型

但是当我运行 flutter pub run build_runner build 时,它被重置了:\ 我需要再次修复它。

有什么我错过的吗?每次运行 build_runner 时不修复此代码会很棒!:) 泰

PS:我的调试控制台中没有错误或任何东西

0 投票
1 回答
35 浏览

flutter - json 可序列化:在模型类中声明但在 json 中不存在的变量

我有一个问题,我有一个简单的模型类,它的变量很少,但是其中一个不一定总是存在。但是如果 json 数据中没有该键,则 JsonSerializable 不会将 json 转换为模型对象。

示例代码 -

如您所见,它是一个模型类,但 street_line2 并不总是存在。如果它不存在,则 json 可序列化不起作用。

0 投票
0 回答
19 浏览

dart - 将 EPOC 时间戳转换为 DateTime?在 json_serializable

我有一个模型,它在颤振应用程序中包含多个DateTime对象。虽然使用注释转换非可空 对象工作得非常好,但当类型为可空对象时出现错误。DateTime@JsonKey(fromJson: _fromJson, toJson: _toJson)DataTime?

来自的错误build_runner是:

我的转换函数如下所示:

它们非常适用于不可为空的 DateTime对象,但我不知道如何使它与DateTime?.

0 投票
1 回答
341 浏览

dart - Dart null 安全性和使用 json_serializable 将 JSON 解析为模型

在使用各种工具将 JSON 反序列化为 Dart 并且对null 安全性感到非常沮丧之后,我有一个非常普遍的问题。json_serializable生成.fromJson和消息的包.toJson应该关心 NULL 值。但我根本无法做到这一点!所以一百万美元的问题是:

我是否必须将模型的所有属性声明为 NULLABLE(带有 ? 例如String? myString,如果在返回的 JSON 中有可能该属性可能丢失或为 NULL ?

当我不将此类成员声明为 NULLABLE 时,我总是会收到此错误:

这些错误总是发生在生成的FromJson方法中。这是导致问题的示例 JSON:

errors数组包含一个数组,该数组本身可能包含也可能不包含( )error objects的数组。如果没有错误则不提交数组,如下所示:key value pairsmetaerrors

在这种情况下,生成的 DART 代码会崩溃,如下所示:

我创建的模型类如下所示:

我创建了一个默认构造函数,它用一个值初始化所有成员(不可为空)。

如果我必须声明所有模型成员,因为nullable这将无法使用,因为在我的颤振小部件中,我必须编写数千个if statements来检查成员是否为空。我认为避免这种情况是 sound null safety 背后的想法之一

我很想知道这是否是一个错误或者我是如何让这个东西工作的!

0 投票
0 回答
364 浏览

flutter - 具有枚举属性的冻结类在尝试序列化时抛出错误

我有一个冻结的类,它在其构造函数中使用一个枚举,但是当尝试在这个类上执行 jsonEncode 方法时,它失败并出现以下错误:

处理手势时引发以下 JsonUnsupportedObjectError:将对象转换为可编码对象失败:“InputType”实例

我已经用 JsonValue("...") 注释了我的枚举案例,但我没有看到任何为枚举生成的代码。

这是一个错误还是我做错了什么?

完整示例如下:

0 投票
0 回答
56 浏览

json - Flutter:将 JsonSerializable 与具有干净架构的继承结合使用

我正在尝试通过此YouTube 教程遵循清洁架构,因此我在数据层中有一组模型对象,用于扩展实体对象。

由于我有很多模型,其中一些有很多字段,我希望使用json_serializable包来自动生成作为工厂和相关 toJson 和 fromJson 转换器方法的样板代码。

但是在运行时:

颤振 pub 运行 build_runner 构建

它失败:

[严重]由于类型无法生成fromJson代码。serversServer

我的数据架构如下,在数据层:

但是,当且仅当所有实体类都用@JsonSerializable(explicitToJson: true).

这对我来说非常麻烦,因为我了解到 Clean Architecture 通过层分离所有关注点并遵循 SOLID 原则。所以我认为实体不应该“意识到”原始模型。并且反序列化方法应该可以用任何其他方法(例如 XML)替代,这里显然违反了这一原则。

我该如何解决这个问题?谢谢您的帮助!

0 投票
1 回答
405 浏览

flutter - flutter pub run build_runner build --delete-conflicting-outputs 在 github 操作中运行失败

我想在 github 操作中运行此命令以在颤振(2.x)中生成 json 可序列化文件,我正在使用json_serializable库:

但是这个命令运行失败,我没有从日志输出中找到任何错误消息,日志如下所示:

哪里出了问题?我应该怎么做才能解决这个问题?

0 投票
1 回答
709 浏览

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

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

问题:

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

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

0 投票
0 回答
12 浏览

python - 无法保存 Python 的 Flask 会话中对象列表中的 MongoDB 集合数据

我正在为我的应用程序使用 Python 的 Flask 和 MongoDB。当前逻辑进行 MongoDB 查询并获取输出并将对象列表分配给 python 变量。对于此任务,bson.json_util 转储和加载用于序列化 ObjectId。

但是,当我尝试将 MongoDB 输出保存在烧瓶会话中而不是为其分配一个变量时,即使在使用转储和加载序列化 JSON 之后,我也面临“TypeError:'ObjectId' 类型的对象不是 JSON 可序列化”错误

请找到下面提到的工作流程

数据格式:

project_details = {'_id': ObjectId('6183fba35******'), 'project_title': 'PROJECT_A,'project_id': ObjectId('6183fb8**********'), 'Author': 'Author_Title'}

MongoDB Collection = [Project_Detail 1, Project_Detail 2, .... ]

没有烧瓶会话的 Python 代码:

projects = loads(dumps(mongo_collection.find({"project_id": {"$eq": ObjectId(project_details['project_id'])}}))) 状态:执行成功!

带有烧瓶会话的 Python 代码(失败):

session['project_lists'] = list() session['project_lists'] = loads(dumps(mongo_collection.find({"project_id": {"$eq": ObjectId(project_details['project_id'])}})))

状态:TypeError:“ObjectId”类型的对象不是 JSON 可序列化的

我能够将 project_title 和 project_id 分别保存在会话中,但无法保存会话中的对象列表。 如何保存 Flask Session 中具有 ObjectId 的对象列表中的 MongoDB 查询结果?

谢谢!

0 投票
1 回答
472 浏览

flutter - 如何正确构建.yaml?

我刚开始学习 Flutter。我使用 vscode 作为编辑器

我需要在我的代码上使用 json_serializable。我阅读了https://pub.dev/packages/json_serializable并让我的 build.yaml 就像那里显示的一样。

但是 vscode 说:不允许使用属性目标。yaml 架构:Hammerkit YAML 架构 [1,1]

仅供参考,这是我的 pubspec.lock

所以请告诉我如何为颤振编写正确的 build.yaml。

注意:我需要将 explicit_to_json 值更改为 true

真挚地

-比诺-