获取动态服务器响应的根对象

问题描述

我正在实现一个API,该API返回体内的不同根对象。例如:

{
   "money_expected_revenue": {
   // payload
   }
}
or
{
   "money_other_revenue": {
   // payload
   }
}

模块输出应该是根对象内的有效负载。该怎么办?

解决方法

您需要编写一个自定义IML函数,使用Javascript方法Object.entries()来检索第一个键值对,然后返回值:

function getRootObj(body) {
    if (body && Object.entries(body).length === 1)
        return Object.entries(body)[0][1];
    return {};
}

然后,在模块的“通讯”选项卡中,在输出中使用此功能:

"response": {
    "output": "{{getRootObj(body)}}"
}