【发布时间】:2015-08-29 05:39:58
【问题描述】:
当我有一个包含以下内容的 sessionVars.filters 时,如何针对 JSON 数据提取信息:
["account", "billing"]
...我的 JSON 数据包含在哪里:
{
"billing": {
"BillNumber": 25,
"BillPeriod": "06 Dec 14 - 05 Jan 15",
"AccountNumber": 78781843,
"PreviousBalance": 0.00,
"CurrentBalance": 1237.49,
"DueDate": "Jan 26, 2015",
"TotalAmountDue": 1237.49,
"PreviousBalance": 0.00,
"CurrentBalance": 1237.49,
"DueDate": "Jan 26, 2015",
"TotalAmountDue": "1237.49"
},
"product": ["hilly"],
"account": {
"Name": "Lee G. Ive",
"Address": "214 Maya St., G2 Village Highlands City, Somewhere 1630"
},
"content": {
"package": {
"userId": "1234"
},
"service": {
"username": "hershey123"
}
}
}
...由此,我希望能够返回以下有效负载(使用我的过滤器数组):
{
"billing": {
"BillNumber": 25,
"BillPeriod": "06 Dec 14 - 05 Jan 15",
"AccountNumber": 78781843,
"PreviousBalance": 0.00,
"CurrentBalance": 1237.49,
"DueDate": "Jan 26, 2015",
"TotalAmountDue": 1237.49,
"PreviousBalance": 0.00,
"CurrentBalance": 1237.49,
"DueDate": "Jan 26, 2015",
"TotalAmountDue": "1237.49"
},
"account": {
"Name": "Lee G. Ive",
"Address": "214 Maya St., G2 Village Highlands City, Somewhere 1630"
}
}
编辑:附录
这就是我在 Anypoint Studio 中尝试做的事情:
response = {
"result": {
"code": 200,
"status": "success"
}
};
foreach (sessionVars.filters as filter) {
response[filter] = data[filter];
}
从那个“伪代码”中,我可以创建我的最终响应负载:
{
"result": {
"code": 200,
"status": "success"
},
"billing": {
"BillNumber": 25,
"BillPeriod": "06 Dec 14 - 05 Jan 15",
"AccountNumber": 78781843,
"PreviousBalance": 0.00,
"CurrentBalance": 1237.49,
"DueDate": "Jan 26, 2015",
"TotalAmountDue": 1237.49,
"PreviousBalance": 0.00,
"CurrentBalance": 1237.49,
"DueDate": "Jan 26, 2015",
"TotalAmountDue": "1237.49"
},
"account": {
"Name": "Lee G. Ive",
"Address": "214 Maya St., G2 Village Highlands City, Somewhere 1630"
}
}
我忘了提到 sessionVars.filters 数组是动态的,具体取决于请求,它只能包含 ["billing"] 或 ["product"、"account"] 等。
【问题讨论】:
标签: json mule esb mule-studio