颤振嵌套JSON到listview

颤振嵌套JSON到listview,json,object,flutter,Json,Object,Flutter,我不熟悉flifter,如何将这个JSON对象解析到listview //API响应 "code": 200, "message": "OK", "payload": { "items": [ { "package": { "order": { "orderer": "xxxx",

我不熟悉flifter,如何将这个JSON对象解析到listview

//API响应

 "code": 200,
    "message": "OK",
    "payload": {
        "items": [
            {
                "package": {
                    "order": {
                        "orderer": "xxxx",
                        "cost": {
                            "amount": "0.0",
                            "currency": {
                                "code": "USD",
                                "name": "US Dollar",
                                "symbol": "$"
                            }
                        },
                        "order_number": "212121",
                        "tracking_code": "833939339",
                        "store": {
                            "name": "ABC",
                            "id": 2,
                            "created_at": "2019-01-21T16:05:45+00:00"
                        },
                        "id": 74,
                        "created_at": "2019-02-08T11:55:14+00:00"
                    },
                    "weight": {
                        "value": "12.9000",
                        "unit": {
                            "name": "Kilogram",
                            "symbol": "kg",
                            "base": "1.00000000",
                            "id": 1
                        }
                    },
                    "length": {
                        "value": "4.0000",
                        "unit": {
                            "name": "Foot",
                            "symbol": "ft",
                            "base": "0.30480000",
                            "id": 7
                        }
                    },
                    "height": {
                        "value": "34.4000",
                        "unit": {
                            "name": "Millimetre",
                            "symbol": "mm",
                            "base": "0.00100000",
                            "id": 4
                        }
                    },
                    "width": {
                        "value": "98.5600",
                        "unit": {
                            "name": "Centimetre",
                            "symbol": "cm",
                            "base": "0.01000000",
                            "id": 2
                        }
                    },
                    "handlings": [
                        {
                            "description": "description",
                            "rate": "0.0200",
                            "icon": "icon-hazadous",
                            "id": 1
                        },
                        {
                            "description": "none ",
                            "rate": "0.0500",
                            "icon": "icon-none",
                            "id": 2
                        }
                    ],
                    "description": "Item description",
                    "id": 113,
                    "created_at": "2019-02-08T11:55:14+00:00"
                },
                "owner": {
                    "name": "Jo B",
                    "phone": "+1",
                    "blocked": false,
                    "activated": true,
                    "id": 98,
                    "created_at": "2019-01-21T16:05:46+00:00",
                    "updated_at": "2018-12-21T15:03:41+00:00"
                },
                "sender": {
                    "name": "A B C",
                    "phone": "+1",
                    "blocked": false,
                    "activated": true,
                    "id": 98,
                    "created_at": "2019-01-21T16:05:46+00:00",
                    "updated_at": "2018-12-21T15:03:41+00:00"
                },
                "creator": {
                    "name": "Jo B",
                    "phone": "+1",
                    "blocked": false,
                    "activated": true,
                    "id": 98,
                    "created_at": "2019-01-21T16:05:46+00:00",
                    "updated_at": "2018-12-21T15:03:41+00:00"
                },
                "source": {
                    "contact_name": "Some name",
                    "contact_phone": "+1",
                    "name": "Some name",
                    "longitude": "-0.0",
                    "latitude": "1.1",
                    "id": 113,
                    "created_at": "2019-02-08T11:55:14+00:00"
                },
                "destination": {
                    "contact_name": "xxxx",
                    "contact_phone": "323232232",
                    "name": "xxx ssss",
                    "longitude": "-0.0",
                    "latitude": "1.1",
                    "id": 113,
                    "created_at": "2019-02-08T11:55:14+00:00"
                },
                "fare": {
                    "amount": "3185.7377",
                    "currency": {
                        "code": "USD",
                        "name": "US Dollar",
                        "symbol": "$"
                    }
                },
                "type": {
                    "name": "some name",
                    "code": "01",
                    "commission": "0.0",
                    "id": 2,
                    "created_at": "2019-01-21T16:05:45+00:00"
                },
                "freight": {
                    "name": "Land",
                    "code": "Land",
                    "id": 1,
                    "created_at": "2019-01-21T16:05:45+00:00"
                },
                "status": {
                    "name": "Pending",
                    "code": "PENDING",
                    "id": 1,
                    "created_at": "2019-01-21T16:05:45+00:00"
                },
                "payment": {
                    "method": {
                        "name": "None",
                        "code": "None",
                        "id": 1,
                        "created_at": "2019-01-21T16:05:46+00:00"
                    },
                    "status": {
                        "name": "Unpaid",
                        "code": "UNPAID",
                        "id": 1,
                        "created_at": "2019-01-21T16:05:46+00:00"
                    },
                    "id": 113,
                    "created_at": "2019-02-08T11:55:14+00:00"
                },
                "id": 113,`enter code here`
                "created_at": "2019-02-08T11:55:14+00:00"
              ],
        "total": 34,
        "offset": 34
    }
}
颤振异步http请求获取API数据,打印JSON,但我似乎没有从JSON请求创建listview

 Future<Null> _fetchData() async {
    setState(() {
      loading = true;
    });
    final response =
        await http.get("url" ,  headers: {"someh header": "xxxx"});
    if (response.statusCode == 200) {
      final data = jsonDecode(response.body);

// request prints here`enter code here`
      print(data);

     );
    }
  }
Future\u fetchData()异步{
设置状态(){
加载=真;
});
最后答复=
等待http.get(“url”,头:{“someh头”:“xxxx”});
如果(response.statusCode==200){
最终数据=jsonDecode(response.body);
//请求在此处打印`在此处输入代码`
打印(数据);
);
}
}
退房。我认为它用详细的步骤解释了你问题的解决方案。 让我知道这是否适合你! 我认为博客中针对你的问题的重点应该是JSON结构4:带列表的嵌套结构

通过上述步骤获得需要显示的对象的
列表
后,您可以在
ListView.builder
中使用此列表在应用程序中显示它们

例如:

showList(List<Your_Model_Class_Name> list) {
  return ListView.builder(
    shrinkWrap: true,
    itemCount: list.length,
    itemBuilder: (BuildContext context, int index) {
      /*Your widget code goes here instead of the ListTile*/
      return ListTile(
        title: Text('${list[index].title}'),
      );
    }
  );
}
showList(列表){
返回ListView.builder(
收缩膜:对,
itemCount:list.length,
itemBuilder:(构建上下文,int索引){
/*您的小部件代码位于此处,而不是ListTile*/
返回列表块(
标题:文本(“${list[index].title}”),
);
}
);
}
您可以查看完整的示例。让我知道这是否有帮助

退房。我认为它用详细的步骤解释了你问题的解决方案。 让我知道这是否适合你! 我认为博客中针对你的问题的重点应该是JSON结构4:带列表的嵌套结构

通过上述步骤获得需要显示的对象的
列表
后,您可以在
ListView.builder
中使用此列表在应用程序中显示它们

例如:

showList(List<Your_Model_Class_Name> list) {
  return ListView.builder(
    shrinkWrap: true,
    itemCount: list.length,
    itemBuilder: (BuildContext context, int index) {
      /*Your widget code goes here instead of the ListTile*/
      return ListTile(
        title: Text('${list[index].title}'),
      );
    }
  );
}
showList(列表){
返回ListView.builder(
收缩膜:对,
itemCount:list.length,
itemBuilder:(构建上下文,int索引){
/*您的小部件代码位于此处,而不是ListTile*/
返回列表块(
标题:文本(“${list[index].title}”),
);
}
);
}

您可以查看完整的示例。让我知道这是否有帮助

您没有正确解码

final dynamic data = json.decode(response.body)

现在,当您打印它时,它将显示您想要看到的内容。

您没有正确解码

final dynamic data = json.decode(response.body)

现在,当您打印它时,它将显示您想要查看的内容。

嘿,欢迎使用SO。您想在listview中具体显示什么?请订购(名称…)、说明、所有者(名称…)、票价、(金额、金额、货币:代码、符号)类型(名称、代码…)、状态(名称和代码)、id和已创建。欢迎使用SO。您想在listview中具体显示什么?请订购(名称…)、说明、所有者(名称…)、票价、(金额、金额、货币:代码、符号)类型(名称、代码…)、状态(名称和代码)、id和已创建的_atThanks@Siddharth Patankar,请说明如何“打包”订单等对象。。。我是个新手。我不清楚你所说的“包”到底是什么意思,但根据我的理解,你可以为每种数据类型设置单独的类,例如,
Orders
可以是一次类,
Items
可以是其他类。根据您需要显示的数据,
ListView
可以是
ListView
ListView
类型。请帮助我,谢谢@Siddharth Patankar,我如何“打包”订单等对象。。。我是个新手。我不清楚你所说的“包”到底是什么意思,但根据我的理解,你可以为每种数据类型设置单独的类,例如,
Orders
可以是一次类,
Items
可以是其他类。根据需要显示的数据,
ListView
可以是
ListView
ListView
类型。请帮我做这个谢谢@Fellipe,请我是颤振新手谢谢@Fellipe,请我是颤振新手