Поскольку вы используете довольно миниатюрный синтаксический анализатор com.codename1.io.JSONParser
JSON, который анализирует JSON до Map<String, Object>
и ничего больше, тогда вам нужно преобразовать Object
, который вы получаете выберите значение для ожидаемого типа и повторите оттуда.
Если объект JSON верхнего уровня является массивом, то создается специальный элемент "root"
, который вы здесь получаете. Это означает, что структура вашего JSON анализируется следующим образом:
{
"root": [
{
"name": <str>,
"stock_status": <???>,
"date_created": <str>,
"images":
{
"id": <num>,
"date_*": <str>,
"src": <str>,
"name": <str>,
"alt": <str>
}
]
}
]
}
Итак, чтобы извлечь src
изображения, вы извлекли массив "root"
и перебрали его. Однако вместо того, чтобы приводить результаты к Map<String, String>
, вы хотите сохранить их как Map<String, Object>
:
for (const Map<String, Object> element : (List<Map<String, Object>>) result.get("root")) {
// The "element" object has an "images" value that is a list of objects
for (const Map<String, Object> image : (List<Map<String, Object>>) element.get("images")) {
// Save the "src" field of each image
productImages.add((String) image.get("src"));
}
}