Dart是一種面向對象的編程語言,支持JSON序列化和反序列化操作。JSON是一種輕量級的數據交換格式,通常在Web應用程序中使用,Dart通過內置的JSON庫,使得開發人員可以輕松地將Dart對象序列化為JSON格式的字符串,或將JSON字符串反序列化為Dart對象。
Mapperson = { "name": "Tom", "age": 30, "city": "New York" }; String personJsonString = json.encode(person); print(personJsonString); // {"name": "Tom", "age": 30, "city": "New York"} Map personJsonMap = json.decode(personJsonString); print(personJsonMap["name"]); // Tom
在上面的代碼中,我們定義了一個名為“person”的Map對象,然后使用Dart的JSON庫將其序列化為JSON字符串。我們還將JSON字符串反序列化回Map對象,然后使用personJsonMap ["name"]訪問person的名稱屬性。
除了基本數據類型,Dart JSON庫還支持將自定義對象序列化為JSON格式。為了支持自定義對象的JSON序列化和反序列化操作,我們需要在我們的類中實現toJson方法和fromJson方法。toJson方法將Dart對象轉換為Map對象,fromJson方法將Map對象轉換回Dart對象。
class Person { String name; int age; String city; Person({this.name, this.age, this.city}); MaptoJson() { final Map data = new Map (); data['name'] = this.name; data['age'] = this.age; data['city'] = this.city; return data; } factory Person.fromJson(Map json) { return Person( name: json['name'], age: json['age'], city: json['city'], ); } } // 對象序列化為JSON Person person = Person(name: "Tom", age: 30, city: "New York"); String personJsonString = json.encode(person.toJson()); print(personJsonString); // {"name": "Tom", "age": 30, "city": "New York"} // JSON字符串反序列化為對象 Map personJsonMap = json.decode(personJsonString); Person newPerson = Person.fromJson(personJsonMap); print(newPerson.name); // Tom
在上面的代碼中,我們創建了一個名為“Person”的類,實現了toJson方法和fromJson方法,可以將我們的Person對象序列化為JSON格式的字符串或將JSON字符串反序列化為Person對象。我們首先創建了一個Person對象,將其序列化為JSON字符串,然后將JSON字符串反序列化為新的Person對象。
總之,Dart的JSON庫是一種簡單,易于使用,完全集成的庫,可以輕松地將Dart對象轉換為JSON字符串,或將JSON字符串轉換回Dart對象。使用Dart的JSON庫,你可以快速地在Dart應用程序中進行JSON序列化和反序列化操作。