json 结果必须是一个数组,得到:Zapier中的对象?

qacovj5a  于 2023-05-19  发布在  其他
关注(0)|答案(2)|浏览(182)

我在Zapier搜索。我有自己的API,当我通过项目ID搜索项目时,它会发送一个对象。
以下是API的回应

{
    "exists": true,
    "data": {
        "creationDate": "2019-05-23T10:11:18.514Z",
        "Type": "Test",
        "status": 1,
        "Id": "456gf934a8aefdcab2eadfd22861",
        "value": "Test"
    }
}

当我搜索这个zap
结果必须是一个数组,得到:object,({“exists”:true,“data”:{“creationDate”:“2019-05-23T10:11:18.514Z)
下面是代码

module.exports = {
    key: 'item',
    noun: 'itemexists',
    display: {
        label: 'Find an item',
        description: 'check if item exist'
    },

    operation: {.
        inputFields: [
            {
                key: 'itemid',
                type: 'string',
                label: 'itemid',
                helpText: 'Eg. e3f1a92f72c901ffc942'
            }
        ],

        perform: (z, bundle) => {
            const url = 'http://IP:8081/v1/itemexists/';
            const options = {
                params: {
                    itemId: bundle.inputData.itemid
                }
            };

            return z.request(url, options)
                .then(response => JSON.parse(response.content));
        },
        sample: {
            "exists": true,
            "data": {
                "creationDate": "2019-05-23T10:11:18.514Z",
                "Type": "Test",
                "status": 1,
                "Id": "456gf934a8aefdcab2eadfd22861",
                "value": "Test"
    }
},
    }
};
ppcbkaq5

ppcbkaq51#

从执行返回的数据必须是“Array”类型(以[开头)。返回了一个对象(以{开头的结构)。
修复方法很简单-将返回的数据放在方括号中。

.then(response => [JSON.parse(response.content)]); // note the added `[]`

// or, if you don't care about the `exisits` key
.then(response => {
  const data = JSON.parse(response.content)
  return [data.data]
});
odopli94

odopli942#

如果你不想或不能改变你现有的代码库,你也可以解析从Zapier端的API中检索到的数据。
在API配置步骤中,如果切换到代码模式而不是表单模式,则可以将API调用的结果 Package 在[]中。

相关问题