【问题标题】:How to get value from Json List - flutter如何从 Json List 中获取价值 - 颤振
【发布时间】:2021-04-24 04:26:30
【问题描述】:

我有这段代码,我可以在其中将 json 数据放入一个列表中,但我真的不知道如何获取我想要的特定数据,比如值

ma​​in.dart

 Future<String> loadDataFromJson() async {
    return await rootBundle.loadString("assets/categories.json");
  }

  Future loadData() async {
    String jString = await loadDataFromJson();
    final jRes = json.decode(jString) as List;
    List<Category> datas = jRes.map((e) => Category.fromJson(e)).toList();
    print(datas);
  }

  @override
  void initState() {
    super.initState();
    loadData();
  }

我在这里打印了数据,它给了我I/flutter ( 6111): [Instance of 'Category', Instance of 'Category', Instance of 'Category', Instance of 'Category']

模型

class Category {
  final String catId;
  final String catName;

  Category({this.catId, this.catName});

  factory Category.fromJson(Map<String, dynamic> json) {
    return Category(catId: json['cat_id'], catName: json['category']);
  }
}

我的json是这样的,但是有多个

{
        "category": "Design & Creativity",
        "cat_id": "1",
        "cat_suncategory": [
            {
                "sub_name": "Ads",
                "sub_image": "https://images.unsplash.com/photo-1589838017489-9198a27bd040?ixid=MXwxMjA3fDB8MHxzZWFyY2h8Mnx8YWR2ZXJ0aXNlbWVudHxlbnwwfHwwfA%3D%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60"
            }
        ]
    }

请问我如何获得我想要的价值

【问题讨论】:

    标签: json flutter dart


    【解决方案1】:

    我无法理解您的问题,但这可能会对您有所帮助;

    如果你的 json 值在 'jRes' 中,你可以这样做

    String myCategory = jRes["category"];
    String subName = jRes["cat_suncategory"][0]["sub_name"];
    String subImage = jRes["cat_suncategory"][0]["sub_image"];
    

    因为使用 '[0]' 是; 'cat_suncategory' 是一个数组,你应该取它的第一个元素,这意味着 [0]。

    【讨论】:

      猜你喜欢
      • 2021-07-24
      • 2021-06-26
      • 1970-01-01
      • 2019-04-20
      • 2021-03-21
      • 1970-01-01
      • 2020-03-19
      • 2021-03-26
      • 2022-09-25
      相关资源
      最近更新 更多