Dart的json convert庫是用于在Dart語言中解析和序列化JSON數(shù)據(jù)的工具。在使用此庫之前,我們需要導(dǎo)入Dart的json convert庫。如下所示:
import 'dart:convert';
我們可以使用此工具將JSON數(shù)據(jù)表示為Map或List對象。例如,假設(shè)我們有以下JSON字符串:
{ "name": "Tom", "age": 25, "address": { "city": "Shanghai", "zipcode": "200001" }, "grades": [80, 85, 90] }
我們可以使用如下代碼將其解析為Dart中的Map對象:
String jsonString = '{"name": "Tom", "age": 25, "address": {"city": "Shanghai", "zipcode": "200001"}, "grades": [80, 85, 90]}'; MapjsonData = json.decode(jsonString);
我們還可以將Dart中的Map對象轉(zhuǎn)換為JSON字符串。例如:
MapjsonData = { "name": "Tom", "age": 25, "address": { "city": "Shanghai", "zipcode": "200001" }, "grades": [80, 85, 90] }; String jsonString = json.encode(jsonData);
注意,使用json encode時,我們需要將待轉(zhuǎn)換的對象傳遞給encode函數(shù)。如果待轉(zhuǎn)換的對象是Map或List類型,則必須將它們的鍵和值都聲明為dynamic類型。
除了將JSON字符串轉(zhuǎn)換為Map或List以及將Map或List轉(zhuǎn)換為JSON字符串之外,我們還可以使用此工具獲取JSON數(shù)據(jù)中的特定值。例如,假設(shè)我們要獲取上述JSON數(shù)據(jù)中的“city”屬性值,則可以使用以下代碼:
String jsonString = '{"name": "Tom", "age": 25, "address": {"city": "Shanghai", "zipcode": "200001"}, "grades": [80, 85, 90]}'; MapjsonData = json.decode(jsonString); String city = jsonData['address']['city']; // city的值為"Shanghai"
總之,Dart的json convert庫提供了一種簡單而有效的方法(無需第三方庫)來解析和序列化JSON數(shù)據(jù)。始終確保在使用此庫時密切檢查JSON數(shù)據(jù)的格式。