繁体   English   中英

如何在flutter中检索嵌套的json数组?

[英]How to retrive nested json array in flutter?

这是我的 JSON 数据:

{ 
   "result":"0",
   "school_code":"School Code",
   "dashboard":{ 
      "resultPrivilege":"0",
      "privilege":[ 
         { 
            "activity_id":"activity_id",
            "privilege_id":"privilege_id"
         }
      ]
   }
}

我想从这个 Json 数据中检索权限数组。
在终端上打印特权数组。
如何检索权限数组的 JSON 对象

这是我检索 JSON 数据的代码:

var data = json.decode(response.body);
    var resultCheck = data['result'];
    if (resultCheck == '0') {
      var rest = data["dashboard"];
      debugPrint(rest);
}

此代码的输出:

result check 0
I/flutter (18905): {"privilege":[
{"activity_id":165,"privilege_id":1568}

我想在打印权限时输出这种格式:

I/flutter (18905):[{"activity_id":165,"privilege_id":1568}]

如何在终端上仅获取特权数组以及如何打印特权对象?。

import 'dart:convert';

void main() {
  var jsonData='{"result":"0","school_code":"School Code","dashboard":{"resultPrivilege":"0", "privilege": [{"activity_id":"activity_id","privilege_id":"privilege_id"}]}}';
  var json=jsonDecode(jsonData);
  json['dashboard']['privilege'].forEach((obj){
    //
    print(obj.toString());
  });
}
Map previlege = {
    'result': '0',
    'school_code': 'School Code',
    'dashboard': {
      'resultPrivilege': '0',
      'privilege': [
        {
          'activity_id': 'activity_id',
          'privilege_id': 'privilege_id',
        }
      ],
    }
  };
  print('Reuslt:  ${previlege['result']}' +
      '\nSchool Code:  ${previlege['school_code']}' +
      '\nActivity ID:  ${previlege['dashboard']['privilege'][0]['activity_id']}');

截屏

尝试这个,

Map<String, dynamic> jsonBody = json.decode(response.body);

String result = jsonBody["result"];
if (result == '0') {
  Map<String, dynamic> dashboard = jsonBody["dashboard"];
  List privilege = dashboard["privilege"];
  debugPrint(privilege.toString());
}

或者您可以使用quicktypeJsonToDart在线工具轻松创建 PODO(Plain Old Dart Objects)类。 然后您可以将 JSON 转换为 dart 类对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM