У меня есть переменная сеанса varIP1, которая имеет значение, как показано ниже: (Это MIME-тип application / java)
{abc={FedId=abc, Id=01FcLA, type=User, Profile={Id=02EmQA, type=Profile, Name=Analyst}}}
Я заинтересован в извлечении первого идентификатора (01FcLA) сверху используя функцию, описанную ниже:
%dw 1.0
%output application/json
%var myLib = readUrl("classpath://dwlib/my-global-functions.wev", "application/dw")
---
{
"Id": (myLib.idLookup(sessionVars.varIP1 ,$.Id,"Id") default null)
}
Глобальная функция, которую я использую:
%function validateLookup(lookupArray, key) 'true' when (lookupArray != null and IsNull(key) == 'false' and lookupArray[key] != null) otherwise 'false'
%function idLookup(lookupArray,key,value) (lookupArray[key][0][value] default '') as :string when (validateLookup(lookupArray,key) == 'true') otherwise null
При использовании приведенного выше кода «Id» становится нулевым. Какие-либо изменения, необходимые выше?
Спасибо.