在对象抖动中解析json

时间:2019-09-25 15:41:37

标签: android mobile flutter flutter-layout

我想在主题对象中解析json:

结果:

[“ [\” 1 \“,\” Alternant \“]”,“ [\” 2 \“,\” DevOps \“]”]

getListTheme方法:

Future<List<String>> getListTheme() async {
    List<String> themes = List<String>();
    final SharedPreferences preferences = await SharedPreferences.getInstance();
    for (String key in preferences.getKeys()) {
      if (key == 'token') {
        preferences.containsKey(key);
      } else {
        themes.add(jsonEncode(preferences.getStringList(key)));
      }
    }
    return themes;
  }

其他代码:

await Theme().getListTheme().then((value){
      theme = jsonEncode(value);
    });

我的主题课:

class Theme {
  int id;
  String name;

  Theme({this.id, this.name});

  factory Theme.fromJson(Map<String, dynamic> json) {
    return Theme(
      id: json['id'],
      name: json['name'],
    );
  }
}

我如何解析主题对象中的结果?

2 个答案:

答案 0 :(得分:0)

我使用此网站将json转换为dart对象 https://javiercbk.github.io/json_to_dart/

答案 1 :(得分:0)

我想您可以尝试返回一个通过JSON传递这样的对象

Future<Theme> fechDataTheme(){

   Theme theme  =  Theme.fromJson('YOUR JSON HERE');

   return theme;

 }

一旦有了对象,便可以使用FutureBuilder在UI上获取它

FutureBuilder<Theme>(
        future: fetchDataTheme(),
        builder: (context, AsyncSnapshot snapshot) {


            if (snapshot.hasData) {
            return Column(

              children: <Widget>[
                Text(snapshot.data.id),
                Text(snapshot.data.name),
              ],

            );