У меня есть приведенный ниже ответ xml от одного из мыльных сервисов:
<?xml version="1.0" encoding="UTF-8"?>
<idc:document DocUrl="//abc.com:443/images/ywnj/mdi5/~edisp/test.jpg" dDocFormats="image/jpeg" dDocName="Test1" dDocTitle="Test1.jpg" dID="603" dName="sysadmin" dStatus="RELEASED" dUser="anonymous" xmlns:idc="//www.stellent.com/IdcService/">
<idc:field name="encodeDocUrl"/>
<idc:field name="localizedForResponse">1</idc:field>
<idc:field name="hasAnnotations">0</idc:field>
<idc:field name="hasStickyNotes">0</idc:field>
<idc:field name="dSubscriptionID">Test1</idc:field>
<idc:field name="idcToken"/>
<idc:resultset TotalRows="2" name="manifest">
<idc:row>
<idc:field name="extRenditionName">indexData</idc:field>
</idc:row>
<idc:row>
<idc:field name="extRenditionName">48x48_GIF</idc:field>
</idc:row>
<idc:row>
<idc:field name="extRenditionName">180x180_GIF</idc:field>
</idc:row>
</idc:resultset>
</idc:document>
<idc:document DocUrl="//abc.com:443/images/ywnj/mdi5/~edisp/test23.jpg" dDocFormats="image/jpeg" dDocName="Test23" dDocTitle="Test23.jpg" dID="603" dName="sysadmin" dStatus="RELEASED" dUser="anonymous" xmlns:idc="//www.stellent.com/IdcService/">
<idc:field name="encodeDocUrl"/>
<idc:field name="localizedForResponse">1</idc:field>
<idc:field name="hasAnnotations">0</idc:field>
<idc:field name="hasStickyNotes">0</idc:field>
<idc:field name="dSubscriptionID">Test23</idc:field>
<idc:field name="idcToken"/>
<idc:resultset TotalRows="2" name="manifest">
<idc:row>
<idc:field name="extRenditionName">indexData</idc:field>
</idc:row>
<idc:row>
<idc:field name="extRenditionName">90x90_GIF</idc:field>
</idc:row>
<idc:row>
<idc:field name="extRenditionName">250x250_GIF</idc:field>
</idc:row>
</idc:resultset>
</idc:document>
, и у меня есть ответ ниже json от другой службы отдыха:
{
"results": [
{
"ID": "1",
"ImageID": "2",
"Name": "Test1",
"Owner": "sysadmin",
"Author": "sysadmin",
"Creator": "sysadmin"
},
{
"ID": "2",
"ImageID": "23",
"Name": "Test23",
"Owner": "sysadmin",
"Author": "sysadmin",
"Creator": "sysadmin"
}
]
}
и я хочу достичь окончательного значения ниже json (данные из мыльного ответа должны отображаться, только если xml dDocName совпадает с именем в JSON.)
{
"results": [
{
"ID": "1",
"ImageID": "2",
"Name": "Test1",
"Owner": "sysadmin",
"Author": "sysadmin",
"Creator": "sysadmin"
"links": [
{
"rel": "indexData",
"href": "/abc/indexData"
},
{
"rel": "48x48_GIF",
"href": "/abc/48x48_GIF"
},
{
"rel": "180x180_GIF",
"href": "/abc/180x180_GIF"
}
]
},
{
"ID": "2",
"ImageID": "23",
"Name": "Test23",
"Owner": "sysadmin",
"Author": "sysadmin",
"Creator": "sysadmin"
"links": [
{
"rel": "indexData",
"href": "/abc/indexData"
},
{
"rel": "90x90_GIF",
"href": "/abc/90x90_GIF"
},
{
"rel": "250x250_GIF",
"href": "/abc/250x250_GIF"
}
]
}
]
}
Я попытался создать нижеприведенное в dataweave, но оно не работает:
%dw 1.0
%output application/json
---
{
"packshots": (payload.searchResults pluck ({
"ID": $.xAH_StoreItemNumber,
"ImageID": $.dID,
"Name": $.dDocName,
"Owner": $.dDocOwner,
"Author": $.dDocAuthor,
"Creator": $.dDocCreator,
"links": (flowVars.renditionResp."idc:document"."idc:resultset"."idc:row" (filter $.dDocName == flowVars.CurrentName) map {
"rel":$."idc:field".@extRenditionName,
"href": "/abc" ++ $."idc:field".@extRenditionName
})
}))
}
Не могли бы вы помочь мне добиться того же !!
Спасибо !!