我有一个数据库视图,我需要以JSON格式发送到Web API调用,但是我很难弄清楚如何让数据映像器取消数据展平。我想要的格式是:
{
"PersonId": "12345"
, "CommonProp": "asdf"
, "DataForPerson": [
{ "Prop1": "prop 1 value A", "Prop2": "prop 2 value A" }
, { "Prop1": "prop 1 value B", "Prop2": "prop 2 value B" }
]
}
视图中的格式如下:
PersonId CommonProp Prop1 Prop2
12345 asdf prop 1 value A prop 2 value A
12345 asdf prop 2 value B prop 2 value B
我该怎么做呢?我最接近的是
{
"PersonId": "12345"
, "CommonProp": "asdf"
, "DataForPerson": [
{ "Prop1": "prop 1 value A", "Prop2": "prop 2 value A" }
]
} {
"PersonId": "12345"
, "CommonProp": "asdf"
, "DataForPerson": [
{ "Prop1": "prop 1 value B", "Prop2": "prop 2 value B" }
]
}
显然,这是不正确的。我曾尝试使用datamapper来做到这一点,但没有任何运气。
谢谢!
编辑 以下是该流程的图片:
民意调查和JDBC是SELECT DISTINCT PERSON_ID FROM MY_VIEW
。在每个人中,我希望每人进行一次JSON呼叫。我现在正在输出一个文件而不是调用Web API,虽然我确实尝试过Web API调用,只要它获得有效的JSON就可以正常工作。
答案 0 :(得分:1)
我确实意识到您已经要求使用DataMapper解决方案。如果您需要备用解决方案,以下仅使用MEL:
<expression-component><![CDATA[
payload =
[
'PersonId': payload[0].PersonId,
'CommonProp': payload[0].CommonProp,
'DataForPerson': (['Prop1': $.Prop1, 'Prop2': $.Prop2] in payload)
];
]]></expression-component>
<json:object-to-json-transformer />