Flutter 颤振实现中的ListView与json数据

Flutter 颤振实现中的ListView与json数据,flutter,listview,dart,Flutter,Listview,Dart,这是我的json字符串,我想知道如何使用它 { “地位”:1, “消息”:“数据接收成功”, “数据”:[ { “账单地址”:“巴格巴特,巴格巴特,北方邦-250609”, “交付地址”:“交付地址”, “订单输入”:“0”, “订单号”:“包装BAWANA12102000001”, “状态”:“待定”, “订单日期”:“2020年10月12日”, “订单时间”:“08:13:53”, “总数量”:5, “gst”:“09AUIOP”, “发货地址”:空, “shipp_city”:空, “s

这是我的json字符串,我想知道如何使用它

{
“地位”:1,
“消息”:“数据接收成功”,
“数据”:[
{
“账单地址”:“巴格巴特,巴格巴特,北方邦-250609”,
“交付地址”:“交付地址”,
“订单输入”:“0”,
“订单号”:“包装BAWANA12102000001”,
“状态”:“待定”,
“订单日期”:“2020年10月12日”,
“订单时间”:“08:13:53”,
“总数量”:5,
“gst”:“09AUIOP”,
“发货地址”:空,
“shipp_city”:空,
“shipp_状态”:空,
“shipp_pincode”:空,
“shipp_mobile”:空,
“shipp_名称”:空,
“账单日期”:空,
“challan”:“,
“条例草案”:“,
“预计交付日期”:“2020年10月19日”
},
]

}
这就是你要找的吗

只需将您的响应粘贴到


导入“dart:convert”;
List modelFromJson(String str)=>List.from(json.decode(str.map)(x)=>Model.fromJson(x));
字符串modelToJson(List data)=>json.encode(List.from(data.map)((x)=>x.toJson());
类模型{
模型({
这是billingAddress,
这个地址是.deliveryAddress,
这个.orderInput,
这是订单号,
这个,身份,,
这个.orderDate,
这一次,
这个,总量,
这是gst,
这位女船夫,
这个城市,
这是shippState,
这个.shipping代码,
这辆车,
这个.shippName,
这个日期,
这是查兰先生,
这个,比尔,
这个.expextedeliveddate,
});
最终字符串计费地址;
最终字符串交付地址;
最终字符串输入;
最终字符串orderNo;
最终字符串状态;
最终字符串orderDate;
最终字符串顺序时间;
最终整数总量;
最终字符串gst;
最终动力船坞;
最终动态装运能力;
最终动态船期;
最终动态发货代码;
最终动态装运;
最终动态shippName;
最终动态账单日期;
最后一串查尔兰;
最后的串票据;
最终字符串expxtedeliveddate;
工厂模型.fromJson(映射json)=>Model(
账单地址:json[“账单地址”],
deliveryAddress:json[“交货地址”],
orderInput:json[“订单输入”],
orderNo:json[“order_no”],
状态:json[“状态”],
orderDate:json[“订单日期”],
orderTime:json[“订单时间”],
totalQuantity:json[“总量”],
gst:json[“gst”],
shippAddress:json[“shipp_地址”],
shippCity:json[“Shippu城市”],
shippState:json[“Shippu状态”],
ShippingCode:json[“Shippp_pincode”],
shippMobile:json[“Shippu移动”],
shippName:json[“shipp_名称”],
billDate:json[“bill_date”],
challan:json[“challan”],
法案:json[“法案”],
expexteddeliverdate:json[“expexted\u deliverdd\u date”],
);
映射到JSON()=>{
“账单地址”:账单地址,
“交货地址”:交货地址,
“订单输入”:订单输入,
“订单号”:订单号,
“地位”:地位,
“订单日期”:订单日期,
“订单时间”:订单时间,
“总数量”:总数量,
“商品及服务税”:商品及服务税,
“shipp_地址”:shippAddress,
“希普普城”:希普城,
“船舶状态”:船舶状态,
“shipp_pincode”:ShippingCode,
“Shippu移动”:shippMobile,
“船舶名称”:船舶名称,
“账单日期”:账单日期,
“查兰”:查兰,
“法案”:法案,
“expexted\u交货日期”:EXPExteded交货日期,
};
}

这只是解析您提供的json文件的一个基本示例

// To parse this JSON data, do
//
//     final model = modelFromJson(jsonString);

import 'dart:convert';

Model modelFromJson(String str) => Model.fromJson(json.decode(str));

String modelToJson(Model data) => json.encode(data.toJson());

class Model {
    Model({
        this.status,
        this.message,
        this.data,
    });

    int status;
    String message;
    List<Datum> data;

    factory Model.fromJson(Map<String, dynamic> json) => Model(
        status: json["status"],
        message: json["message"],
        data: List<Datum>.from(json["data"].map((x) => Datum.fromJson(x))),
    );

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

class Datum {
    Datum({
        this.billingAddress,
        this.deliveryAddress,
        this.orderInput,
        this.orderNo,
        this.status,
        this.orderDate,
        this.orderTime,
        this.totalQuantity,
        this.gst,
        this.shippAddress,
        this.shippCity,
        this.shippState,
        this.shippPincode,
        this.shippMobile,
        this.shippName,
        this.billDate,
        this.challan,
        this.bill,
        this.expextedDeliverdDate,
    });

    String billingAddress;
    String deliveryAddress;
    String orderInput;
    String orderNo;
    String status;
    String orderDate;
    String orderTime;
    int totalQuantity;
    String gst;
    dynamic shippAddress;
    dynamic shippCity;
    dynamic shippState;
    dynamic shippPincode;
    dynamic shippMobile;
    dynamic shippName;
    dynamic billDate;
    String challan;
    String bill;
    String expextedDeliverdDate;

    factory Datum.fromJson(Map<String, dynamic> json) => Datum(
        billingAddress: json["billing_address"],
        deliveryAddress: json["delivery_address"],
        orderInput: json["order_input"],
        orderNo: json["order_no"],
        status: json["status"],
        orderDate: json["order_date"],
        orderTime: json["order_time"],
        totalQuantity: json["total_quantity"],
        gst: json["gst"],
        shippAddress: json["shipp_address"],
        shippCity: json["shipp_city"],
        shippState: json["shipp_state"],
        shippPincode: json["shipp_pincode"],
        shippMobile: json["shipp_mobile"],
        shippName: json["shipp_name"],
        billDate: json["bill_date"],
        challan: json["challan"],
        bill: json["bill"],
        expextedDeliverdDate: json["expexted_deliverd_date"],
    );

    Map<String, dynamic> toJson() => {
        "billing_address": billingAddress,
        "delivery_address": deliveryAddress,
        "order_input": orderInput,
        "order_no": orderNo,
        "status": status,
        "order_date": orderDate,
        "order_time": orderTime,
        "total_quantity": totalQuantity,
        "gst": gst,
        "shipp_address": shippAddress,
        "shipp_city": shippCity,
        "shipp_state": shippState,
        "shipp_pincode": shippPincode,
        "shipp_mobile": shippMobile,
        "shipp_name": shippName,
        "bill_date": billDate,
        "challan": challan,
        "bill": bill,
        "expexted_deliverd_date": expextedDeliverdDate,
    };
}

以下是您的json文件:

{
    "status": 1,
    "message": "Data Received successful",
    "data": [
         {
            "billing_address": "BAGHPAT , BAGHPAT , UTTAR PRADESH - 250609",
            "delivery_address": "",
            "order_input": "0",
            "order_no": "Packaging BAWANA121020200001",
            "status": "Pending",
            "order_date": "12-10-2020",
            "order_time": "08:13:53",
            "total_quantity": 5,
            "gst": "09AUIOP",
            "shipp_address": null,
            "shipp_city": null,
            "shipp_state": null,
            "shipp_pincode": null,
            "shipp_mobile": null,
            "shipp_name": null,
            "bill_date": null,
            "challan": "",
            "bill": "",
            "expexted_deliverd_date": "19-10-2020"
        }

  ]
}
下面是我为您提供的json创建的模型

// To parse this JSON data, do
//
//     final model = modelFromJson(jsonString);

import 'dart:convert';

Model modelFromJson(String str) => Model.fromJson(json.decode(str));

String modelToJson(Model data) => json.encode(data.toJson());

class Model {
    Model({
        this.status,
        this.message,
        this.data,
    });

    int status;
    String message;
    List<Datum> data;

    factory Model.fromJson(Map<String, dynamic> json) => Model(
        status: json["status"],
        message: json["message"],
        data: List<Datum>.from(json["data"].map((x) => Datum.fromJson(x))),
    );

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

class Datum {
    Datum({
        this.billingAddress,
        this.deliveryAddress,
        this.orderInput,
        this.orderNo,
        this.status,
        this.orderDate,
        this.orderTime,
        this.totalQuantity,
        this.gst,
        this.shippAddress,
        this.shippCity,
        this.shippState,
        this.shippPincode,
        this.shippMobile,
        this.shippName,
        this.billDate,
        this.challan,
        this.bill,
        this.expextedDeliverdDate,
    });

    String billingAddress;
    String deliveryAddress;
    String orderInput;
    String orderNo;
    String status;
    String orderDate;
    String orderTime;
    int totalQuantity;
    String gst;
    dynamic shippAddress;
    dynamic shippCity;
    dynamic shippState;
    dynamic shippPincode;
    dynamic shippMobile;
    dynamic shippName;
    dynamic billDate;
    String challan;
    String bill;
    String expextedDeliverdDate;

    factory Datum.fromJson(Map<String, dynamic> json) => Datum(
        billingAddress: json["billing_address"],
        deliveryAddress: json["delivery_address"],
        orderInput: json["order_input"],
        orderNo: json["order_no"],
        status: json["status"],
        orderDate: json["order_date"],
        orderTime: json["order_time"],
        totalQuantity: json["total_quantity"],
        gst: json["gst"],
        shippAddress: json["shipp_address"],
        shippCity: json["shipp_city"],
        shippState: json["shipp_state"],
        shippPincode: json["shipp_pincode"],
        shippMobile: json["shipp_mobile"],
        shippName: json["shipp_name"],
        billDate: json["bill_date"],
        challan: json["challan"],
        bill: json["bill"],
        expextedDeliverdDate: json["expexted_deliverd_date"],
    );

    Map<String, dynamic> toJson() => {
        "billing_address": billingAddress,
        "delivery_address": deliveryAddress,
        "order_input": orderInput,
        "order_no": orderNo,
        "status": status,
        "order_date": orderDate,
        "order_time": orderTime,
        "total_quantity": totalQuantity,
        "gst": gst,
        "shipp_address": shippAddress,
        "shipp_city": shippCity,
        "shipp_state": shippState,
        "shipp_pincode": shippPincode,
        "shipp_mobile": shippMobile,
        "shipp_name": shippName,
        "bill_date": billDate,
        "challan": challan,
        "bill": bill,
        "expexted_deliverd_date": expextedDeliverdDate,
    };
}

//要解析此JSON数据,请执行以下操作
//
//最终模型=modelFromJson(jsonString);
导入“dart:convert”;
modelmodelfromjson(stringstr)=>Model.fromJson(json.decode(str));
字符串modelToJson(模型数据)=>json.encode(data.toJson());
类模型{
模型({
这个,身份,,
这条信息,
这个数据,,
});
智力状态;
字符串消息;
列出数据;
工厂模型.fromJson(映射json)=>Model(
状态:json[“状态”],
message:json[“message”],
数据:List.from(json[“data”].map((x)=>Datum.fromJson(x)),
);
映射到JSON()=>{
“地位”:地位,
“信息”:信息,
“data”:List.from(data.map((x)=>x.toJson()),
};
}
类基准{
基准面({
这是billingAddress,
这个地址是.deliveryAddress,
这个.orderInput,
这是订单号,
这个,身份,,
这个.orderDate,
这一次,
这个,总量,
这是gst,
这位女船夫,
这个城市,
这是shippState,
这个.shipping代码,
这辆车,
这个.shippName,
这个日期,
这是查兰先生,
这个,比尔,
这个.expextedeliveddate,
});
字符串计费地址;
字符串传递地址;
字符串顺序输入;
字符串orderNo;
字符串状态;
字符串orderDate;
字符串顺序时间;
整数总量;
字符串gst;
动力船坞;
动态适航性;
动态船舶状态;
动态代码;
动态运输;
动态shippName;
动态计费日期;
弦查尔兰;
串票据;
字符串expxtedeliveddate;
工厂数据.fromJson(映射json)=>数据(
账单地址:json[“账单地址”],
deliveryAddress:json[“交货地址”],
orderInput:json[“订单输入”],
orderNo:json[“order_no”],
状态:json[“状态”],
orderDate:json[“订单日期”],
作战需求
import 'package:flutter/material.dart';


import 'package:json_parsing_example/model2.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  var _isLoading = false;

  List<Datum> usersList = [];

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

    getData();
  }

  getData() async {
    setState(() {
      _isLoading = true;
    });

    String data =
        await DefaultAssetBundle.of(context).loadString("json/parse.json");

    final model = modelFromJson(data);

    usersList = model.data;

    setState(() {
      _isLoading = false;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
      appBar: AppBar(
        title: Text("Users List "),
      ),
      body: _isLoading
          ? Center(
              child: CircularProgressIndicator(),
            )
          : ListView.builder(
              itemCount: usersList.length,
              shrinkWrap: true,
              itemBuilder: (BuildContext context, int index) {
                var item = usersList[index];
                return Card(
                  child: Padding(
                    padding: EdgeInsets.all(5),
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Padding(
                          padding: const EdgeInsets.all(8.0),
                          child: Text(item.billingAddress),
                        ),
                        Padding(
                          padding: const EdgeInsets.all(8.0),
                          child: Text(item.orderNo),
                        ),
                        Padding(
                          padding: const EdgeInsets.all(8.0),
                          child: Text(item.expextedDeliverdDate),
                        ),
                      ],
                    ),
                  ),
                );
              }),
    ));
  }
}