json数据文件或者自己http获取到的json
*jsondate.dart
var jsontext = """{
"data": [
{
"children": [
{
"courseId": 13,
"id": 538,
"name": "",
"order": 255001,
"parentChapterId": 535,
"userControlSetTop": false,
"visible": 1
}
],
"courseId": 13,
"id": 535,
"name": "",
"order": 255,
"parentChapterId": 0,
"userControlSetTop": false,
"visible": 1
}
],
"errorCode": 0,
"errorMsg": "No"
}""";
第一种:使用FlutterJsonHelper插件(推荐:最简单)
创建json.dart文件,将上述的json或者http获取到的字符串复制进来,然后在创建json.dart文件右键选择Generate->JsonToDartClass,然后在弹窗中将json字符串粘贴进去,点击ok即可。生成的实体类如下图:
重点来了,代码
import 'dart:convert';
import 'jsondate.dart'; //这个地方如果你是用http获取的json数据,那就不用
import 'json.dart'; //这个就是上述json数据转化为实体的文件
Map
var coin = Json.fromJson(jsontext1); //记得Json.from... 这里面的J是大写,因为是要对应import 'json.dart'中class类的自定义名称
print(coin.data[0].order);
print(coin.errorMsg);
第二种:使用FlutterJsonBeanFactory插件
复制json字符串,建立model
重点来了,代码
import 'dart:convert';
import 'generated/json/base/json_convert_content.dart'; //刚刚插件自动生成的文件,必须添加,如果没添加爆红了点fix也会添加
import 'jsondate.dart'; //这个地方如果你是用http获取的json数据,那就不用
import 'jsonone_jsonformat.dart'; //刚刚插件自动生成的文件,必须添加
Map
JsononeJsonformat model = JsonConvert.fromJsonAsT(jsontext1); //其中JsononeJsonformat是import 'jsonone_jsonformat.dart'中class类的自定义名称(如果复杂的json,里面多重嵌套,数组不同,就要注意自定义的class名称了);JsonConvert.from.. 就是上述import中json_convert_content.dart文件
print(model.errorMsg);
print(model.errorCode);
print(model.data[0].order.toString());
高能总结:如果复杂的json,里面多重嵌套,数组不同,就要注意二个自定义的class名称了!!!重要的事情说三遍