Flutter 颤振实现中的ListView与json数据
这是我的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
{
“地位”: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),
),
],
),
),
);
}),
));
}
}