Замороженный Flutter не смог преобразовать вложенный класс в json
Как видите, я реализовал три
freezed
класс :
@freezed
class OrderStructure with _$OrderStructure {
const factory OrderStructure({
required String title,
required String address,
required String lat,
required String lang,
required List<SelectedProducts> products,
}) = _OrderStructure;
factory OrderStructure.fromJson(Map<String , dynamic> json)=>_$OrderStructureFromJson(json);
}
@freezed
class SelectedProducts with _$SelectedProducts {
const factory SelectedProducts({
required int id,
required String title,
required String categoryTitle,
required List<SelectedProductServices> services,
}) = _SelectedProducts;
factory SelectedProducts.fromJson(Map<String , dynamic> json)=>_$SelectedProductsFromJson(json);
}
@freezed
class SelectedProductServices with _$SelectedProductServices {
const factory SelectedProductServices({
required String title,
required int id,
@Default(1) int count,
required int cost,
}) = _SelectedProductServices;
factory SelectedProductServices.fromJson(Map<String , dynamic> json)=>_$SelectedProductServicesFromJson(json);
}
в у меня есть другой
List
class, такой как, и у этого класса есть другой класс, например, тогда у нас есть этот многократный вложенный класс:
-OrderStructure
---SelectedProducts as List
------SelectedProductServices as List
теперь, когда я пытаюсь получить все данные, которые хранятся в этой структуре, у меня есть только для класса, а не для классов вложенных списков и
.toJson
из родительского типа класса возврата для
SelectedProducts
а также
SelectedProductServices
тогда у меня есть структура json для
OrderStructure
такие как это поля:
required String title,
required String address,
required String lat,
required String lang,
образец результата, который я получаю после попытки преобразования в
json
:
{
title: title,
address: address,
lat: 242343,
lang: 2342342342,
products:
[
SelectedProducts(
id: 1,
title: test,
categoryTitle: test,
services: [
SelectedProductServices(
title: test,
id: 1,
count: 2,
cost: 5000
)
]
)
]
}