问题标签 [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.
flutter - 添加双类型属性后,JsonSerializable 不返回对象
我使用JsonSerializable从 json 生成了 Item 模型实例,我得到了这个生成的代码。但是在我添加了双类型属性(价格)后它不会返回一个项目。没有它它工作
然后我尝试通过更改双重解析来修复它并成功
这是我的模型
但是当我运行 flutter pub run build_runner build 时,它被重置了:\ 我需要再次修复它。
有什么我错过的吗?每次运行 build_runner 时不修复此代码会很棒!:) 泰
PS:我的调试控制台中没有错误或任何东西
flutter - json 可序列化:在模型类中声明但在 json 中不存在的变量
我有一个问题,我有一个简单的模型类,它的变量很少,但是其中一个不一定总是存在。但是如果 json 数据中没有该键,则 JsonSerializable 不会将 json 转换为模型对象。
示例代码 -
如您所见,它是一个模型类,但 street_line2 并不总是存在。如果它不存在,则 json 可序列化不起作用。
dart - 将 EPOC 时间戳转换为 DateTime?在 json_serializable
我有一个模型,它在颤振应用程序中包含多个DateTime
对象。虽然使用注释转换非可空 对象工作得非常好,但当类型为可空对象时出现错误。DateTime
@JsonKey(fromJson: _fromJson, toJson: _toJson)
DataTime?
来自的错误build_runner
是:
我的转换函数如下所示:
它们非常适用于不可为空的 DateTime对象,但我不知道如何使它与DateTime?
.
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 pairs
meta
errors
在这种情况下,生成的 DART 代码会崩溃,如下所示:
我创建的模型类如下所示:
我创建了一个默认构造函数,它用一个值初始化所有成员(不可为空)。
如果我必须声明所有模型成员,因为nullable
这将无法使用,因为在我的颤振小部件中,我必须编写数千个if statements
来检查成员是否为空。我认为避免这种情况是 sound null safety 背后的想法之一。
我很想知道这是否是一个错误或者我是如何让这个东西工作的!
flutter - 具有枚举属性的冻结类在尝试序列化时抛出错误
我有一个冻结的类,它在其构造函数中使用一个枚举,但是当尝试在这个类上执行 jsonEncode 方法时,它失败并出现以下错误:
处理手势时引发以下 JsonUnsupportedObjectError:将对象转换为可编码对象失败:“InputType”实例
我已经用 JsonValue("...") 注释了我的枚举案例,但我没有看到任何为枚举生成的代码。
这是一个错误还是我做错了什么?
完整示例如下:
json - Flutter:将 JsonSerializable 与具有干净架构的继承结合使用
我正在尝试通过此YouTube 教程遵循清洁架构,因此我在数据层中有一组模型对象,用于扩展实体对象。
由于我有很多模型,其中一些有很多字段,我希望使用json_serializable
包来自动生成作为工厂和相关 toJson 和 fromJson 转换器方法的样板代码。
但是在运行时:
颤振 pub 运行 build_runner 构建
它失败:
[严重]由于类型无法生成
fromJson
代码。servers
Server
我的数据架构如下,在数据层:
但是,当且仅当所有实体类都用@JsonSerializable(explicitToJson: true)
.
这对我来说非常麻烦,因为我了解到 Clean Architecture 通过层分离所有关注点并遵循 SOLID 原则。所以我认为实体不应该“意识到”原始模型。并且反序列化方法应该可以用任何其他方法(例如 XML)替代,这里显然违反了这一原则。
我该如何解决这个问题?谢谢您的帮助!
flutter - flutter pub run build_runner build --delete-conflicting-outputs 在 github 操作中运行失败
我想在 github 操作中运行此命令以在颤振(2.x)中生成 json 可序列化文件,我正在使用json_serializable库:
但是这个命令运行失败,我没有从日志输出中找到任何错误消息,日志如下所示:
哪里出了问题?我应该怎么做才能解决这个问题?
flutter - Flutter Freezed 模型升级后的 JsonSerializable 和 JsonKey 问题
我的应用程序运行正常,但是在 pub upgrade --major-versions 之后,我在所有模型上都遇到了问题。示例模型:
问题:
为了让它能在几周前的上一次升级中工作,我在pubspec.yaml中为json_annotation: '4.0.1' 和json_serializable: '4.1.4' 设置了一个固定版本,但我想知道是否还有其他方法更新这些软件包没有任何问题。
我错过了什么,我怎样才能达到与使用冻结之前相同的效果?
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 查询结果?
谢谢!
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
真挚地
-比诺-