Как разобрать json с динамическим именем свойства в OIC?

Мне нужно использовать и анализировать входящий json из сторонней системы в моем коде. Я использовал RestTemplate для этого. Таким образом, ответ системы выглядит следующим образом.{ "data": { "05AAAFW9419M11Q": { "gstin": "05AAAFW9419M11Q", "error_cd": "SWEB_9035", "message": "Invalid GSTIN / UID" } } }

Теперь проблема заключается в имени свойства (в данном случае «05AAAFW9419M11Q») в динамическом режиме, и в следующем ответе это будет другая строка. В этом случае, как я могу разобрать этот json, поскольку это не исправлено в Oracle Integration Cloud? Оболочка ответа не захватывает данные, кроме тех, которые используются для настройки адаптера, что достаточно справедливо, поскольку само имя поля меняется. Есть ли обходной путь для этого?

1 ответ

Вам нужно будет перейти к PL/SQL и динамическому SQL, и если это всегда значение записи gstin, вы можете получить путь к ключу с помощью

      select '$.data.' ||
    json_query(js_column, '$.data.*.gstin') into v_key path from table_with_json_column where ... conditions... ;

(при условии, что для каждой полезной нагрузки JSON есть только 1 «данные») для последующего создания динамического запроса на основе json_table.

Другие вопросы по тегам