imagesFromJson static method
Returns ProductImages from a JSON map for "Images"
Implementation
static List<ProductImage>? imagesFromJson(Map? json) {
if (json == null) return null;
var imageList = <ProductImage>[];
for (var field in ImageField.values) {
for (OpenFoodFactsLanguage lang in OpenFoodFactsLanguage.values) {
// get the field object e.g. front_en
final String fieldName = '${field.offTag}_${lang.offTag}';
if (json[fieldName] == null) continue;
final fieldObject = json[fieldName] as Map<String, dynamic>?;
if (fieldObject == null) continue;
final rev = JsonObject.parseInt(fieldObject['rev']);
final String imgid = fieldObject['imgid'].toString();
final ImageAngle? angle = ImageAngleExtension.fromInt(
JsonObject.parseInt(fieldObject['angle']),
);
final String? coordinatesImageSize =
fieldObject['coordinates_image_size']?.toString();
final int? x1 = JsonObject.parseInt(fieldObject['x1']);
final int? y1 = JsonObject.parseInt(fieldObject['y1']);
final int? x2 = JsonObject.parseInt(fieldObject['x2']);
final int? y2 = JsonObject.parseInt(fieldObject['y2']);
// get the sizes object
var sizesObject = fieldObject['sizes'] as Map<String, dynamic>?;
if (sizesObject == null) continue;
// get each number object (e.g. 200)
for (var size in ImageSize.values) {
var number = size.number;
var numberObject = sizesObject[number] as Map<String, dynamic>?;
if (numberObject == null) continue;
var image = ProductImage(
field: field,
size: size,
language: lang,
rev: rev,
imgid: imgid,
angle: angle,
coordinatesImageSize: coordinatesImageSize,
x1: x1,
y1: y1,
x2: x2,
y2: y2,
);
imageList.add(image);
}
}
}
return imageList;
}