当我调用getall endpoint时,它给了我下面的json对象,我将把该值绑定到一个Entity类。但不能分配新值或访问响应值。因为它内部有另一个json对象。我将在下面附加代码。
我想知道创建一个实体的正确顺序,JSON对象有几个对象的JSON对象ID在Flutter
[
{
"id": "931992ff-6ec6-43c9-a54c-b1c5601d58e5",
"sp_id": "062700016",
"phone_number": "+94716035826",
"nic": "991040293V",
"**drivers_license**": {
"license_id": "12345678",
"expiry_date": "2023-09-36"
},
"user_level": "",
"gender": "Male",
"user_sub_type": "app_user",
"is_fleet_owner": false,
"fleet_id": "",
"documents": null,
"payment_parameters": {
"account_holder_name": "",
"bank_name": "",
"branch_name": "",
"account_number": "",
"swift_code": ""
}
}
]
- 我想创建json中加粗的实体,调用“drivers_license”对象 *
我试过像这样的实体类,但是不能正确理解如何实现像json上面的drivers_license的一部分。
class ServiceProviderModel {
String id = "";
String phone_number = "";
String nic = "";
String license_id = "";
String expiry_date = "";
String gender = "";
String user_sub_type = "";
String document_type_1 = "";
String document_type_2 = "";
String first_name = "";
String last_name = "";
String email = "";
String profile_pic_url = "";
String emergency_contact = "";
String status = "active";
ServiceProviderModel();
ServiceProviderModel.fromJson(Map json)
: id = json['id'],
phone_number = json['phone_number'],
nic = json['nic'],
license_id = json['license_id'],
gender = json['gender'],
user_sub_type = json['user_sub_type'],
document_type_1 = json['document_type_1'],
document_type_2 = json['document_type_2'],
first_name = json['first_name'],
last_name = json['last_name'],
email = json['email'],
profile_pic_url = json['profile_pic_url'],
emergency_contact = json['emergency_contact'],
expiry_date = json['expiry_date'],
status = json['status'];
Map toJson() => {
'id': id,
'phone_number': phone_number,
'nic': nic,
'license_id': license_id,
'gender': gender,
'user_sub_type': user_sub_type,
'document_type_1': document_type_1,
'document_type_2': document_type_2,
'first_name': first_name,
'last_name': last_name,
'email': email,
'profile_pic_url': profile_pic_url,
'emergency_contact': emergency_contact,
'expiry_date': expiry_date,
'status': status,
};
}
4条答案
按热度按时间ndasle7k1#
我建议使用像https://app.quicktype.io/这样的工具。输入您的示例JSON可以生成以下示例
它可能没有像你希望的确切格式,但你可以调整它到你的愿望,并得到一个好主意,如何可能做到这一点
ep6jt1vc2#
通常,你会为你的子实体创建一个新的类,并带有属性,以及自己的from和to json方法。然后在父类的fromJson方法中调用这些方法。
伪代码供您插入。
这里有一个更完整的例子,从我自己的项目。这会将类设置为不可变的,并提供一个copyWith方法来将更改应用到新示例。不包括toJson(),但在结构方面与您目前拥有的基本相同。
x6h2sr283#
我找到了这个问题的一个很好的答案,我使用下面的代码来解决这个问题。这是非常简单和干净
eeq64g8w4#
你可以看到这个例子:
}
如果你有serval JSON Object,那么试试这个,你可以在你模型中尝试这个,但是你必须为你的serval JSON对象创建另一个模型:
在您的案例中:
用户模型此函数将被修改如下: