带你读《深入浅出Dart》十四、Dart中使用JSON(2)

简介: 带你读《深入浅出Dart》十四、Dart中使用JSON(2)

带你读《深入浅出Dart》十四、Dart中使用JSON(1)https://developer.aliyun.com/article/1349007?groupCode=tech_library


3.使用json_serializable

在上一部分中,我们介绍了如何手动将JSON转换为Dart对象。然而,当你处理复杂的JSON数据时,手动转换可能会变得繁琐并且容易出错。因此,你可能会想使用代码生成库来自动完成这部分工作。在Dart中,有一种非常流行的库就是json_serializable

 

要使用json_serializable,你首先需要在pubspec.yaml文件中添加相关的依赖:

dependencies:
  flutter:
    sdk: flutter
  json_annotation: ^4.0.0
dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: ^2.0.0
  json_serializable: ^4.0.0

 

然后运flutter pub get命令来安装这些包。

 

接下来,你需要定义你的模型类,并使用一些注解:

 

import 'package:json_annotation/json_annotation.dart';
part 'person.g.dart';
@JsonSerializable()class Person {
  String name;
  int age;
  String city;
  Person(this.name, this.age, this.city);
  factory Person.fromJson(Map json) => _$PersonFromJson(json);
  Map toJson() => _$PersonToJson(this);}

 

在这个例子中,_$PersonFromJson_$PersonToJson是由json_serializable生成的辅助函数,它们将会在我们运行代码生成命令后自动生成。

 

现在,你可以运行以下命令来生成JSON序列化代码:

 

flutter pub run build_runner build

 

生成的代码将会放在一个名为person.g.dart的文件中。

 

现在,你就可以使用fromJsontoJson方法来进行JSON和模型的转换了:

void main() {
  var json = '{"name":"John Doe","age":30,"city":"New York"}';
  var person = Person.fromJson(jsonDecode(json));
  print(person.name);  // 输出:John Doe
  var json = jsonEncode(person.toJson());
  print(json);  // 输出:{"name":"John Doe","age":30,"city":"New York"}}

 

 

json_serializable提供了许多其他的功能,例如处理嵌套的模型、使用自定义的日期格式、处理枚举类型等。要了解更多信息,你可以查看其官方文档。


带你读《深入浅出Dart》十四、Dart中使用JSON(3)https://developer.aliyun.com/article/1349005?groupCode=tech_library

相关文章
|
JSON Dart 安全
Flutter Dart Macro 宏简化 JSON 序列化
今天我们将会体验 dart 语言新特性 macro 宏,来实现对 json 的序列化,用到的包是官方实验室写的 json 包。 本文将会一步步的带你实现这个功能,那我们开始吧。
301 2
Flutter Dart Macro 宏简化 JSON 序列化
|
JSON Dart JavaScript
带你读《深入浅出Dart》十四、Dart中使用JSON(1)
带你读《深入浅出Dart》十四、Dart中使用JSON(1)
352 0
|
JSON Dart IDE
带你读《深入浅出Dart》十四、Dart中使用JSON(3)
带你读《深入浅出Dart》十四、Dart中使用JSON(3)
163 0
|
JSON Dart 数据格式
dart中json和对象互转
开发过程中,json是必不可少的基础技能之一。这里记录下,在Dart语言中,如何将json解析成实例对象,以及如何将实例对象转化成json字符串。
|
JSON Dart 数据格式
【Flutter】JSON 模型转换 ( JSON 序列化工具 | JSON 手动序列化 | 根据 JSON 编写 Dart 模型类 | 在线自动根据 JSON 转换 Dart 类 )(二)
【Flutter】JSON 模型转换 ( JSON 序列化工具 | JSON 手动序列化 | 根据 JSON 编写 Dart 模型类 | 在线自动根据 JSON 转换 Dart 类 )(二)
753 0
【Flutter】JSON 模型转换 ( JSON 序列化工具 | JSON 手动序列化 | 根据 JSON 编写 Dart 模型类 | 在线自动根据 JSON 转换 Dart 类 )(二)
|
JSON Dart 数据格式
【Flutter】JSON 模型转换 ( JSON 序列化工具 | JSON 手动序列化 | 根据 JSON 编写 Dart 模型类 | 在线自动根据 JSON 转换 Dart 类 )(一)
【Flutter】JSON 模型转换 ( JSON 序列化工具 | JSON 手动序列化 | 根据 JSON 编写 Dart 模型类 | 在线自动根据 JSON 转换 Dart 类 )(一)
879 0
|
4月前
|
JSON API 数据格式
淘宝拍立淘按图搜索API系列,json数据返回
淘宝拍立淘按图搜索API系列通过图像识别技术实现商品搜索功能,调用后返回的JSON数据包含商品标题、图片链接、价格、销量、相似度评分等核心字段,支持分页和详细商品信息展示。以下是该API接口返回的JSON数据示例及详细解析:
|
4月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
5月前
|
机器学习/深度学习 JSON 监控
淘宝拍立淘按图搜索与商品详情API的JSON数据返回详解
通过调用taobao.item.get接口,获取商品标题、价格、销量、SKU、图片、属性、促销信息等全量数据。
|
4月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。