У меня есть модель, показанная ниже.
@JsonSerializable()
class Vehicle{
final String name;
final String make;
final String model;
final int year;
final int tires;
final int seats;
Vehicle({
this.name,
this.make,
this.model,
this.year,
this.tires,
this.seats
});
factory Vehicle.fromJson(Map<String, dynamic> json, int vehicleOwnerId) {
var response = _$VehicleFromJson(json);
response.vehicleOwnerId = vehicleOwnerId;
return response;
}
Map<String, dynamic> toJson() => _$VehicleToJson(this);
}
В другой части приложения мне нужно отправить объект Vehicle и конечную точку API, как это.
Future<int> sendData({Vehicle vehicle}){
final Response response = await put(
Uri.https(apiEndpoint, {"auth": authKey}),
headers: headers,
body: vehicle);
return response.statusCode;
}
Vehicle car;
// remove/exclude unwanted fields
Здесь мне нужно удалить / исключить дополнительные поля, такие как сиденья и шины, из объекта Car.
int responseCode = await sendData(vehicle: car);
Я использую пакет Json Serializable для обработки данных JSON, поэтому было бы здорово, если бы я мог использовать JsonKey (ignore: true) для исключения нежелательных полей из отдельного класса, расширяющего модель. Я не уверен, есть ли другой способ сделать это. Может ли кто-нибудь помочь мне в этой ситуации? Заранее спасибо!
Я думаю, вам здесь не хватает дополнительного шага. Вы не сможете использовать модель дротика в качестве полезной нагрузки данных для HTTP-запросов. Вам нужно будет сопоставить его ключи в формате String, а затем jsonEncode карту.
Вы можете сделать что-то подобное, чтобы исключить нежелательные поля из класса дротика.
Для получения дополнительных сведений: Перейдите по этой ссылке
Я не уверен, что это лучший подход, но дайте мне знать, как это происходит.
Эта работа как шарм! Спасибо, что указали мне недостающие части, цените это! — person SUPARNA SOMAN; 03.02.2020