json Pub Package
json package spirit by SwiftyJSON.
// 0x00 import package import 'package:g_json/g_json.dart'; ... void someMethod() { final jsonStr = ''' { "_id": "5f0fd54e54044a55385a0f31", "name": { "first": "Coleman", "last": "Evans" }, "range": [0, 1, 2, 3, 4, 5, 6,7, 8, 9], "friends": [ { "id": 0, "name": "Gibson Hull" }, { "id": 1, "name": "Dunlap Bush" }, { "id": 2, "name": "Bette Herman" } ] } '''; // 0x01 parse json string to object final mode = JSON.parse(jsonStr); final _id = mode['_id'].stringValue; final secondFriend = mode[['friends', 2]]['name'].stringValue; print(mode.prettyString()); }
import 'package:json/json.dart'; final model = JSON(jsonMap); // or final model = JSON.parse(jsonString);
// Getting a string from a JSON Array final name = json[0].stringValue;
// Getting an array of string from a JSON Array final names = json.arrayValue.map((j) => j['name'].stringValue)
// Getting a string using a path to the element final path = [1, 'list', 2, 'name']; final name = json[path].string; // or final name = json[[1, 'list', 2, 'name']].string; // Just the same final name = json[1]['list'][2]['name'].string;
final json = JSON(['name', 'age']); final name = json[3].string; if (name != null) { // Do something you want } else { print(json[3].error); // List(3) Index is out of bounds. }
final json = JSON({'name': name, 'age': 20}); final address = json['address'].string; if (address != null) { // Do something you want } else { print(json['address'].error); // "Map["address"] does not exist" }
final json = JSON.nil; print(json[0]); // List(0) failure, It is not a List print(json[0].error); // List(0) failure, It is not a List print(json['key']); // Map(key) failure, It is not a Map print(json['key'].error); // Map(key) failure, It is not a Map
// num final count = json['user']['favourites_count'].num; if (count != null) { // DO something } else { print(json['user']['favourites_count'].error); } // String final name = json['user']['favourites_name'].string; if (name != null) { // DO something } else { print(json['user']['favourites_name'].error); } // Bool final isTranslator = json['user']['is_translator'].bool; if (isTranslator != null) { // DO something } else { print(json['user']['is_translator'].error); } ...
Non=optional getter is named xxxValue
// if not a Number or nil, return 0 int id = json['id'].integerValue; // if not a string or nil, return '' String name = json['name'].stringValue; // if not a list or nil return [] List<JSON> list = json['list'].listValue; // if not a map or nil, return {} Map<String, JSON> map = json['map'].mapValue;
json['name'] = 'G_JSON'; json[0] = 1;
// raw final value = json.value; // json string final jsonString = json.rawString();
dynamic person = JSON({'name': 'kevin', 'language': 'dart'}); person.name = 'icey'; person.language = 'Swift'; print(person.rawString()); // {"name": "icey", "language": "swift"}