Dart 是谷歌開發的一款兼容面向對象的編程語言,它也提供了直觀易懂的 JSON 庫。JSON 是一種經常用于客戶端和服務器之間交換數據的格式,Dart 的 JSON 庫可以解析 JSON 字符串并將其轉化為 Dart 中的 JSON 對象形式。
Dart 中的 JSON 庫非常靈活,可以輕松地解析、序列化和構造 JSON 數據。它提供了多種解析 JSON 數據的方法,包括手動解析和自動解析。
手動解析由自己編寫的代碼負責拆分 JSON 字符串并構造對應的 Dart 對象。自動解析則通過和它的注釋結構一起使用,讓 Dart 代碼根據 JSON 數據的結構自動生成對應的 Dart 對象。
下面是一個使用 JSON 庫解析 JSON 字符串的示例代碼:
import 'dart:convert'; void main() { // JSON 格式字符串 String jsonData = '{"name":"張三","age":18,"gender":"male"}'; // 解析 JSON MapuserMap = jsonDecode(jsonData); // 轉換為 Dart 對象 User user = User.fromJson(userMap); // 輸出結果 print(user.name); print(user.age); print(user.gender); } class User { String name; int age; String gender; User({required this.name, required this.age, required this.gender}); factory User.fromJson(Map json) { return User( name: json['name'], age: json['age'], gender: json['gender'], ); } }
上面的示例代碼中,我們首先通過 jsonDecode 函數將 JSON 格式字符串解析為一個 Map 對象,然后再通過 User.fromJson 工廠方法將 JSON 數據轉換為 Dart 對象。
JSON 庫還提供了 toJson 方法,可以將 Dart 對象序列化為 JSON 格式字符串:
void main() { // 創建一個 Dart 對象 User user = User(name: '李四', age: 20, gender: 'female'); // 將 Dart 對象序列化為 JSON String jsonData = jsonEncode(user); // 輸出結果 print(jsonData); }
在上面的代碼中,我們通過 jsonEncode 函數將 User 類型的對象序列化為 JSON 格式字符串。
總的來說,Dart 的 JSON 庫提供了很多方便易用的方法,可以幫助我們在開發中處理 JSON 數據。有了它,我們可以輕松地解析、序列化和構造 JSON 數據,并將其轉換為與之對應的 Dart 對象。