Я пытаюсь передать тело Json внутрь тела Json, используя флаттер. Функция выглядит следующим образом:
Future<String> postItem(Item item, Brand brand) async {
var jsonob = jsonEncode(<String, dynamic>{
'item_code': item.itemCode,
'item_name': item.itemName,
'part_no': item.partNo,
'min_stock': int.parse(item.minStock),
'brand': jsonEncode(brand)
});
print(jsonob); //for debugging
final http.Response response = await http.post(
BASE_URL + "item",
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonob
);
Брендировать следующую функцию для кодирования в json:
Map<String, dynamic> toJson() => {
"id": int.parse(this.brandId),
"brand_name": this.brandName,
"brand_code": this.brandCode,
"brand_image": this.brandImage
};
сообщение об ошибке: E/flutter ( 1601): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Exception: {error: entity validation failed, reasons: [invalid input type for 'brand']}
вывод на печать для jsonob:
{"item_code":"item-001","item_name":"item123","part_no":"part123","min_stock":1,"brand":"{\"id\":1,\"brand_name\":\"BRANDA\",\"brand_code\":\"BRANDA\",\"brand_image\":\"null\"}"}
Здесь я пользуюсь рекомендациями: https://flutter.dev/docs/cookbook/networking/send-data
http-сервер создан с использованием Aqueduct. Я попытался запустить тот же http.post с помощью POSTMAN, и не было выдано никакой ошибки, поэтому я не уверен, что вызывает эту ошибку во флаттере.
Любая помощь будет принята с благодарностью.