问题描述
我能够成功获取JSON数据,但无法获取JSON数据的字段并在flutter中建立列表。
这是我用来获取字段数据的代码
OrderModel.fromJson(Map<String,dynamic> json) {
error = json['error'];
if (json['content'] != null) {
content = new List<OrderContent>();
json['content'].forEach((v) {
content.add(new OrderContent.fromJson(v));
});
}
}
json['content']
是Map<String,dynamic>
。
在.forEach((v)
中,我应该写些什么来获取数据?我对这种波动和JSON学习是陌生的,我认为仅在这一点上是错误的
我在下面工作的JSON数据结构
{
"error": "false","content": {
"16": [
[
{
"sod_pk": "31688","soh_fk": "23660","sqd_fk": "33294","order_header": {
"soh_pk": "23660","order_no": "16",}
}
],[
{
"sod_pk": "31689","sqd_fk": "33293",}
}
]
],"18": [
[
{
"sod_pk": "31744","soh_fk": "23702","sqd_fk": "33354","order_header": {
"soh_pk": "23702","order_no": "18",[
{
"sod_pk": "31745","sqd_fk": "33356",]
}
}
上面的JSON数据结构在每个商品详细信息中都没有嵌套的订单,必须在所有订单号中获取订单,然后在订单的各个数据中获取
。解决方法
您可以在下面复制粘贴运行完整代码
步骤1:您可以使用df1.columns = [int(master[master.Question==c]['ID'].values) for c in df1.columns]
进行解析,其中payloadFromJson
字段为content
,请参见下面的完整代码
步骤2:显示Map<String,List<List<OrderContent>>>
和FutureBuilder
工作演示
完整代码
ListView.separated
,
您的json没有优化,因此难以处理。
首先,您会看到json ['content']不是列表,因此无法使用foreach来获取数据。它是一个对象(地图){...}。但是颤振并不确切地知道它是什么的映射,因此您必须进行投射。其次,要获得sod_pk
,例如,您有2个列表。没必要这是代码
final content = (data['content'] as Map<String,dynamic>);
final sod_pk = content['16'].first.first['sod_pk'];
print(sod_pk);