什么是JSON?
JSON是一种轻量级的数据交换语言,JSON的全称为JavaScript Object Nation(JavaScript 对象表示语法),基于 ECMAScript,存放的是的类似于键值对,本质上来说是javascript的数据类型,是一种轻量级的数据交互格式,简单来说呢,json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。
Flutter该用什么JSON序列化方式?
- 小型项目:手动序列化;
- 大型项目:借助插件生成json_serializable和built_value;
其实大型项目使用手动+借助下面提到的在线转换的方式更加灵活高效
这里有两个在线json转换的网站:
https://jsontodart.com/
https://www.bejson.com/json2javapojo/new/
如何反序列化?
String jsonStr = '{ "icon": "http://www.devio.org/io/flutter_app/img/ln_food.png", "title": "美食林", "url": "https://m.ctrip.com/webapp/you/foods/address.html?new=1&ishideheader=true", "statusBarColor": "19A0F0", "hideAppBar": true }';
Map<String, dynamic> map = JSON.decode(jsonStr);
print('icon: ${map['icon']}');
print('title:${map['title']}');
通过上述方式可以将json字符串转换成Map,但Map中存放那些字段在使用的时候很不方便,如果将Map<String, dynamic>转成Model呢?