简体   繁体   English

flutter map 如何用于小部件

[英]how flutter map in for widget

my json=我的 json =

{
  "result": {
    "name": "json1",
      "pages": [{
          "zones": [{
              "title": "title1"
           },
           {
              "title": "title2"
           }],
           "id": 4
       },
       {
          "zones": [{
            "title": "title3"
          },
          {
            "title": "title4"
          }],
          "id": 12
       }],
       "creatorUserName": "admin",
       "id": 2
    }
}

futurebuilder code未来建造者代码

List post = snapshot.data["result"]["pages"];

return new Stack(
              children: post.where((val) => val["id"] == 4).map((post) {
                for (var item in post['zones']) {
                print("title "+ item['title']);
                  Container(
                    child: Text(item["title"]),
                  ); //Container
                }


              }).toList(),

); //Stack

Error code: Stack's children must not contain any null values, but a null value was found at index 0 enter image description here错误代码:堆栈的子项不得包含任何 null 值,但在索引 0 处找到 null 值 在此处输入图像描述

help how can to build an algorithms帮助如何构建算法

if get id = 4 zones -> Text(title1), Text(title2),如果得到 id = 4 个区域 -> 文本(标题 1),文本(标题 2),


else id empty zones -> Text(title1), Text(title2), zones -> Text(title3), Text(title4), else id empty zone -> Text(title1), Text(title2), zone -> Text(title3), Text(title4),

Try尝试

List post = snapshots.data["result"]["pages"];

First Make a model class for your JSON response using this amazing webpage , after that you can easily.首先使用这个令人惊叹的网页为您的 JSON 响应创建 model class ,之后您可以轻松。 call the needed data调用需要的数据

import 'dart:convert';

YourModelClassName yourModelClassNameFromJson(String str) => YourModelClassName.fromJson(json.decode(str));

String yourModelClassNameToJson(YourModelClassName data) => json.encode(data.toJson());

class YourModelClassName {
    Result result;

    YourModelClassName({
        this.result,
    });

    factory YourModelClassName.fromJson(Map<String, dynamic> json) => YourModelClassName(
        result: Result.fromJson(json["result"]),
    );

    Map<String, dynamic> toJson() => {
        "result": result.toJson(),
    };
}

class Result {
    String name;
    List<Page> pages;
    String creatorUserName;
    int id;

    Result({
        this.name,
        this.pages,
        this.creatorUserName,
        this.id,
    });

    factory Result.fromJson(Map<String, dynamic> json) => Result(
        name: json["name"],
        pages: List<Page>.from(json["pages"].map((x) => Page.fromJson(x))),
        creatorUserName: json["creatorUserName"],
        id: json["id"],
    );

    Map<String, dynamic> toJson() => {
        "name": name,
        "pages": List<dynamic>.from(pages.map((x) => x.toJson())),
        "creatorUserName": creatorUserName,
        "id": id,
    };
}

class Page {
    List<Zone> zones;
    int id;

    Page({
        this.zones,
        this.id,
    });

    factory Page.fromJson(Map<String, dynamic> json) => Page(
        zones: List<Zone>.from(json["zones"].map((x) => Zone.fromJson(x))),
        id: json["id"],
    );

    Map<String, dynamic> toJson() => {
        "zones": List<dynamic>.from(zones.map((x) => x.toJson())),
        "id": id,
    };
}

class Zone {
    String title;

    Zone({
        this.title,
    });

    factory Zone.fromJson(Map<String, dynamic> json) => Zone(
        title: json["title"],
    );

    Map<String, dynamic> toJson() => {
        "title": title,
    };
}

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

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