Arrays 无法将数据从JSON获取到Flatter中的字段
我能够从颤振应用程序中的服务器获取JSON数据。我需要在PageView.builder和嵌套的ListView.builder中显示数据,我已经创建了这个模型 该守则要求实施Arrays 无法将数据从JSON获取到Flatter中的字段,arrays,json,flutter,flutter-listview,flutter-pageview,Arrays,Json,Flutter,Flutter Listview,Flutter Pageview,我能够从颤振应用程序中的服务器获取JSON数据。我需要在PageView.builder和嵌套的ListView.builder中显示数据,我已经创建了这个模型 该守则要求实施 orderdetail = NewOrder.fromJson(json.decode(response.body)); 这是我能够从颤振应用程序中的服务器获取的JSON数据 { "error": "false", "content": [
orderdetail = NewOrder.fromJson(json.decode(response.body));
这是我能够从颤振应用程序中的服务器获取的JSON数据
{
"error": "false",
"content": [
{
"comp_code": "4",
"comp_name": "KMT OVERSEAS",
"order_no": "16",
"order_items": [
{
"comp_code": "4",
"comp_name": "KMT OVERSEAS",
"order_no": "16",
},
{
"comp_code": "4",
"comp_name": "KMT OVERSEAS",
"order_no": "16",
}
]
},
{
"comp_code": "4",
"comp_name": "KMT OVERSEAS",
"order_no": "18",
"order_items": [
{
"comp_code": "4",
"comp_name": "KMT OVERSEAS",
"order_no": "18",
},
{
"comp_code": "4",
"comp_name": "KMT OVERSEAS",
"order_no": "18",
},
{
"comp_code": "4",
"comp_name": "KMT OVERSEAS",
"order_no": "18",
},
]
}
]
}
我用于它的代码是用于获取有状态小部件中的数据
Future<Payload> getdetailsoforders(String userid, String companycode) async {
SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
Map data = {
'user_id': userid,
'company_code':companycode
};
var response = await http.post(newapi, body: data);
if(response.statusCode == 200) {
jsonResponse = json.decode(response.body);
print("jsonrespnse");
print(jsonResponse);
}
} else {
setState(() {
_isLoading = false;
});
print('login error');
print(response.body);
}
}
Future getdetailsoforders(字符串用户ID、字符串公司代码)异步{
SharedReferences SharedReferences=等待SharedReferences.getInstance();
地图数据={
“用户id”:用户id,
“公司代码”:公司代码
};
var response=wait http.post(newapi,body:data);
如果(response.statusCode==200){
jsonResponse=json.decode(response.body);
打印(“JSONResponse”);
打印(jsonResponse);
}
}否则{
设置状态(){
_isLoading=false;
});
打印(“登录错误”);
打印(响应.正文);
}
}
下面是我实现的NewOrder模型类
import 'newitem.dart';
class NewOrder {
NewOrder({
this.sohPk,
this.orderNo,
this.newItem,
});
String sohPk;
String orderNo;
NewItem newItem;
factory NewOrder.fromJson(Map<String, dynamic> json) => NewOrder(
sohPk: json["soh_pk"],
orderNo: json["order_no"],
newItem:NewItem.fromJson(json['order_items'])
);
Map<String, dynamic> toJson() => {
"soh_pk": sohPk,
"order_no": orderNo,
'order_items': newItem.toJson()
};
}
导入“newitem.dart”;
类新订单{
新秩序({
这个,sohPk,,
这是订单号,
这个新项目,
});
字符串sohPk;
字符串orderNo;
NewItem NewItem;
工厂NewOrder.fromJson(映射json)=>NewOrder(
sohPk:json[“soh_pk”],
orderNo:json[“order_no”],
newItem:newItem.fromJson(json['order\u items'])
);
映射到JSON()=>{
“搜狐pk”:搜狐pk,
“订单号”:订单号,
'order_items':newItem.toJson()
};
}
我实现的NewPlayLoadClass就在这里
导入“package:dataproject2/newmodel/neworder.dart”
class NewPayLoad {
String error;
List<NewOrder> content;
NewPayLoad({this.error, this.content});
NewPayLoad.fromJson(Map<String, dynamic> json) {
error = json['error'];
if (json['content'] != null) {
content = new List<NewOrder>();
json['content'].forEach((v) {
content.add(new NewOrder.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['error'] = this.error;
if (this.content != null) {
data['content'] = this.content.map((v) => v.toJson()).toList();
}
return data;
}
}
class-NewPayLoad{
字符串错误;
列出内容;
NewPayLoad({this.error,this.content});
fromJson(映射json){
error=json['error'];
如果(json['content']!=null){
内容=新列表();
json['content'].forEach((v){
add(NewOrder.fromJson(v));
});
}
}
映射到JSON(){
最终地图数据=新地图();
数据['error']=this.error;
如果(this.content!=null){
data['content']=this.content.map((v)=>v.toJson()).toList();
}
返回数据;
}
}
我得到的错误就在这里
以下NoSuchMethodError在生成时抛出
PageViewClass(脏,状态:_PageViewClassState#98a84):getter
对null调用了“content”。接收方:null尝试调用:content
我无法理解我的代码有什么问题,以及如何解决它
请进一步指导使用以下代码
class NewOrder {
String _error;
List<Content> _content;
NewOrder({String error, List<Content> content}) {
this._error = error;
this._content = content;
}
String get error => _error;
set error(String error) => _error = error;
List<Content> get content => _content;
set content(List<Content> content) => _content = content;
NewOrder.fromJson(Map<String, dynamic> json) {
_error = json['error'];
if (json['content'] != null) {
_content = new List<Content>();
json['content'].forEach((v) {
_content.add(new Content.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['error'] = this._error;
if (this._content != null) {
data['content'] = this._content.map((v) => v.toJson()).toList();
}
return data;
}
}
class Content {
String _compCode;
String _compName;
String _orderNo;
List<OrderItems> _orderItems;
Content(
{String compCode,
String compName,
String orderNo,
List<OrderItems> orderItems}) {
this._compCode = compCode;
this._compName = compName;
this._orderNo = orderNo;
this._orderItems = orderItems;
}
String get compCode => _compCode;
set compCode(String compCode) => _compCode = compCode;
String get compName => _compName;
set compName(String compName) => _compName = compName;
String get orderNo => _orderNo;
set orderNo(String orderNo) => _orderNo = orderNo;
List<OrderItems> get orderItems => _orderItems;
set orderItems(List<OrderItems> orderItems) => _orderItems = orderItems;
Content.fromJson(Map<String, dynamic> json) {
_compCode = json['comp_code'];
_compName = json['comp_name'];
_orderNo = json['order_no'];
if (json['order_items'] != null) {
_orderItems = new List<OrderItems>();
json['order_items'].forEach((v) {
_orderItems.add(new OrderItems.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['comp_code'] = this._compCode;
data['comp_name'] = this._compName;
data['order_no'] = this._orderNo;
if (this._orderItems != null) {
data['order_items'] = this._orderItems.map((v) => v.toJson()).toList();
}
return data;
}
}
class OrderItems {
String _compCode;
String _compName;
String _orderNo;
OrderItems({String compCode, String compName, String orderNo}) {
this._compCode = compCode;
this._compName = compName;
this._orderNo = orderNo;
}
String get compCode => _compCode;
set compCode(String compCode) => _compCode = compCode;
String get compName => _compName;
set compName(String compName) => _compName = compName;
String get orderNo => _orderNo;
set orderNo(String orderNo) => _orderNo = orderNo;
OrderItems.fromJson(Map<String, dynamic> json) {
_compCode = json['comp_code'];
_compName = json['comp_name'];
_orderNo = json['order_no'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['comp_code'] = this._compCode;
data['comp_name'] = this._compName;
data['order_no'] = this._orderNo;
return data;
}
}
类NewOrder{
字符串错误;
列表内容;
NewOrder({字符串错误,列表内容}){
这是错误;
这._content=内容;
}
字符串获取错误=>\u错误;
设置错误(字符串错误)=>\u错误=错误;
列表获取内容=>\u内容;
设置内容(列表内容)=>\u内容=内容;
fromJson(映射json){
_error=json['error'];
如果(json['content']!=null){
_内容=新列表();
json['content'].forEach((v){
_content.add(newcontent.fromJson(v));
});
}
}
映射到JSON(){
最终地图数据=新地图();
数据['error']=此错误;
如果(此._内容!=null){
data['content']=this._content.map((v)=>v.toJson()).toList();
}
返回数据;
}
}
课堂内容{
字符串编码;
字符串_compName;
字符串_orderNo;
列出订购项目;
内容(
{字符串编码,
字符串compName,
字符串orderNo,
列出订单项}){
这个。_compCode=compCode;
这个._compName=compName;
这个。_orderNo=orderNo;
这是._orderItems=orderItems;
}
字符串get compCode=>\u compCode;
设置compCode(字符串compCode)=>\u compCode=compCode;
字符串get compName=>\u compName;
设置compName(字符串compName)=>\u compName=compName;
字符串get orderNo=>\u orderNo;
设置orderNo(字符串orderNo)=>\u orderNo=orderNo;
List get orderItems=>\u orderItems;
设置orderItems(列出orderItems)=>\u orderItems=orderItems;
Content.fromJson(映射json){
_compCode=json['comp_code'];
_compName=json['comp_name'];
_orderNo=json['order_no'];
如果(json['order_items']!=null){
_orderItems=新列表();
json['order_items'].forEach((v){
_add(neworderItems.fromJson(v));
});
}
}
映射到JSON(){
最终地图数据=新地图();
数据['comp_code']=此;
数据['comp_name']=此;
数据['order_no']=此;
if(this.\u orderItems!=null){
data['order\u items']=这个.orderItems.map((v)=>v.toJson()).toList();
}
返回数据;
}
}
类OrderItems{
字符串编码;
字符串_compName;
字符串_orderNo;
OrderItems({String compCode,String compName,String orderNo}){
这个。_compCode=compCode;
这个._compName=compName;
这个。_orderNo=orderNo;
}
字符串get compCode=>\u compCode;
设置compCode(字符串compCode)=>\u compCode=compCode;
字符串get compName=>\u compName;
设置compName(字符串compName)=>\u compName=compName;
字符串get orderNo=>\u orderNo;
设置orderNo(字符串orderNo)=>\u orderNo=orderNo;
fromJson(映射json){
_compCode=json['comp_code'];
_compName=json['comp_name'];
_orderNo=json['order_no'];
}
映射到JSON(){
最终地图数据=新地图();
数据['comp_code']=此;
数据['comp_name']=此;
数据['order_no']=此;
返回数据;
}
}
@chunhunghan您好,我看到您解决了一个类似的问题,请帮助我解决这个问题,我试图实现您对这个问题的解决方案,但没有成功,请指导我进一步感谢您对JSON数据框架建模的帮助。我还要求你做一件事,请帮助我调用元素,因为它太复杂了,我无法做出正确的选择。每个示例一个就足够了,请指导我获取OrderItemsyes的元素,在将来的函数中使用