dartでjson配列のparse方法

個人的に残しておきたかったので,置いときます.

import 'dart:convert';

// 今回はUser型を定義しました
class User {
  final String name;
  final String hobby;

  User(this.name, this.hobby);

  // map to User
  User.fromJson(Map<String, dynamic> json)
      : name = json['name'],
        hobby = json['hobby'];

  // map to json
  Map<String, dynamic> toJson() =>
    {
      'name': name,
      'hobby': hobby,
    };
}

void main() {
  // 対象json文字列
  final String json = """[{"name":"mituba", "hobby":"anime"}, {"name":"mit", "hobby":"ani"}]""";

  // string to List<User>
  List<Map<String, String>> jsonArray = JSON.decode(json);
  List<User> userList = jsonArray.map((i) => new User.fromJson(i)).toList();

  userList.forEach((i) => print(i.name + ':' + i.hobby));
  // ---output---- 
  // mituba:anime
  // mit:ani

  print(JSON.encode(userList));
  // ---output---- 
  // [{"name":"mituba","hobby":"anime"},{"name":"mit","hobby":"ani"}]
}

感想

非常に楽