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

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

十四、Dart中使用JSON

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它基于JavaScript的一个子集。在Dart中,你可以使用dart:convert库来进行JSON的编码和解码。

1. JSON编码

你可以使用jsonEncode函数将一个Dart对象转换为JSON字符串。例如:

import 'dart:convert';
void main() {
  var person = {
    'name': 'John Doe',
    'age': 30,
    'city': 'New York'
  };
  var json = jsonEncode(person);
  print(json);  // 输出:{"name":"John Doe","age":30,"city":"New York"}}

 

如果你需要将一个Dart类转换为JSON字符串,那么你需要在对象中添加一个toJson方法,这个方法应该返回一个可以直接转换为JSON字符串的对象。例如:

 

import 'dart:convert';
class Person {
  String name;
  int age;
  String city;
  Person(this.name, this.age, this.city);
  Map toJson() => {
        'name': name,
        'age': age,
        'city': city,
      };}
void main() {
  var person = Person('John Doe', 30, 'New York');
  var json = jsonEncode(person);
  print(json);  // 输出:{"name":"John Doe","age":30,"city":"New York"}}
  1. JSON解码

你可以使用jsonDecode函数将一个JSON字符串转换为Dart对象。例如:

import 'dart:convert';
void main() {
  var json = '{"name":"John Doe","age":30,"city":"New York"}';
  var person = jsonDecode(json);
  print(person);  // 输出:{name: John Doe, age: 30, city: New York}}

 

如果你需要将一个JSON字符串转换为Dart类,那么你需要在对象中添加一个命名构造函数,例如fromJson,这个构造函数应该接收一个Map类型的参数。例如:

 

import 'dart:convert';
class Person {
  String name;
  int age;
  String city;
  Person(this.name, this.age, this.city);
  Person.fromJson(Map json)
      : name = json['name'],
        age = json['age'],
        city = json['city'];}
void main() {
  var json = '{"name":"John Doe","age":30,"city":"New York"}';
  var person = Person.fromJson(jsonDecode(json));
  print(person.name);  // 输出:John Doe}


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

相关文章
|
7月前
|
JSON Dart 数据格式
带你读《深入浅出Dart》十四、Dart中使用JSON(2)
带你读《深入浅出Dart》十四、Dart中使用JSON(2)
|
7月前
|
JSON Dart IDE
带你读《深入浅出Dart》十四、Dart中使用JSON(3)
带你读《深入浅出Dart》十四、Dart中使用JSON(3)
|
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 类 )(二)
470 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 类 )(一)
465 0
|
4月前
|
JSON PHP 数据格式
|
2月前
|
存储 JSON Apache
揭秘 Variant 数据类型:灵活应对半结构化数据,JSON查询提速超 8 倍,存储空间节省 65%
在最新发布的阿里云数据库 SelectDB 的内核 Apache Doris 2.1 新版本中,我们引入了全新的数据类型 Variant,对半结构化数据分析能力进行了全面增强。无需提前在表结构中定义具体的列,彻底改变了 Doris 过去基于 String、JSONB 等行存类型的存储和查询方式。
揭秘 Variant 数据类型:灵活应对半结构化数据,JSON查询提速超 8 倍,存储空间节省 65%
|
3月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
30 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
2天前
|
JSON 数据格式 Python
Python标准库中包含了json模块,可以帮助你轻松处理JSON数据
【4月更文挑战第30天】Python的json模块简化了JSON数据与Python对象之间的转换。使用`json.dumps()`可将字典转为JSON字符串,如`{"name": "John", "age": 30, "city": "New York"}`,而`json.loads()`则能将JSON字符串转回字典。通过`json.load()`从文件读取JSON数据,`json.dump()`则用于将数据写入文件。
8 1
|
6天前
|
存储 JSON 数据处理