首页 > 解决方案 > 将json转换为飞镖

问题描述

我是 Flutter 的初学者,我只想知道如何在控制台中打印 productA 和 220。下面是 json 文件,并在下面创建 dart 文件。

{
  "status": true,
  "message": "Data returned successfull",
  "data": {
    "products": [
      {
        "productName": "productA",
        "productPrice": "220.00",
      }
    ]
  }
}

产品.dart

class Product {
  bool status;
  String message;
  Data data;

  Product({this.status, this.message, this.data});

  Product.fromJson(Map<String, dynamic> json) {
    status = json['status'];
    message = json['message'];
    data = json['data'] != null ? new Data.fromJson(json['data']) : null;
  }
}

class Data {
  List<Products> products;

  Data({this.products});

  Data.fromJson(Map<String, dynamic> json) {
    if (json['products'] != null) {
      products = new List<Products>();
      json['products'].forEach((v) {
        products.add(new Products.fromJson(v));
      });
    }
  }
}

class Products {
  String prodName;
  String prodRkPrice;

  Products({this.prodName, this.prodRkPrice});

  Products.fromJson(Map<String, dynamic> json) {
    prodName = json['prodName'];
    prodRkPrice = json['prodRkPrice'];
  }
}




但仍然不知道如何打印这些值。


fetchData() async {
    try {
      String extractedData =
          await http.get('json url').toString();

      final parsed = jsonDecode(extractedData).cast(Map<String, dynamic>());

      final products = Product.fromJson(parsed);

      print(products);

      //print(json.decode(response.body));
      //print(response[0]);
    } catch (error) {
      throw (error);
    }
  }


我曾尝试使用此方法,但出现错误,不知道如何解析和打印这些值?请帮助我,我是 Flutter 的初学者

标签: jsonflutterdart

解决方案


这应该有效:

Map<String, dynamic> message = jsonDecode('{"status": true,"message": "Data returned successfull","data": {"products": [{"productName": "productA","productPrice": "220.00"}]}}');
print(message["data"]["products"][0]["productName"]);

你得到什么错误?


推荐阅读