如何在flutter中传递json数组及其对象和对象键?

时间:2019-03-29 06:08:47

标签: json api parsing flutter

[在此处输入图像描述] [1]我想解析json Array及其对象和数组对象中的键。我怎么解析??

http.Response response=await http.get("api url");
   List resJson=json.decode(response.body);
   Map decode=jsonDecode(response.body);
   List<Task> task =new List<Task>();
   for(var task in decode['rows']){
    print(task['Task']);
   }

我想解析这个数组。

“行”:[       {          “任务”                {                  “ title”:“ aamir”       },“类别类型”:{                             id:“ 123”}       {          “数字”:3,          “ word”:“ SES”       }    ] }

2 个答案:

答案 0 :(得分:0)

您添加的JSON无效

如果这是您要解析的JSON-

{
    "rows": [{
        "Task": {
            "title": "aamir"
        },
        "Category Type": {
            "id": "123"
        }
    }]
}

您可以这样解析-

for(int i = 0 ; i < rows.length ; i++) {
  var task = rows[i]["Task"];
  String title = task["title"];
  String id = rows[i]["Category Type"]["id"];

答案 1 :(得分:0)

对于这种情况,另一个答案足够好,但不是最佳选择,如果您创建一个podo(或pojo),然后将此方法添加到podo类中(假设它的名称是Task),效率会更高。

factory Task.fromJson(Map<String, dynamic> json) => new Post(
        title: json["title"];}

带有构造函数。

Task({this.title})

还有很多工具可以在线创建这个podo(例如https://app.quicktype.io),然后像这样解码它

Map<String, dynamic> map = json.decode(response.body);
Iterable<dynamic> l = map["rows"];
List<Task> tasks= l.map((model) => Task.fromJson(model)).toList(); 

,然后您有任务列表。