Как разобрать 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.