5

配列「データ」を JSON.parse しようとしています。配列をルートとして渡すことができる必要があります。

{
  "data": [
    {
      "type": "name",
      "id": "123"
    }
  ]
}

応答は、オブジェクトのみを含む次のようになります。Zapier は配列ではうまく動作しないようです。

{
      "type": "name",
      "id": "123"
}

簡単なスクリプトを使用して作業を完了できるようにすべきではありませんか?


編集:

基本的に、API の応答をインターセプトできるように、スクリプトでpost_pollメソッド ( https://zapier.com/developer/documentation/v2/scripting/#polling )をオーバーライドする必要があります。その後、必要な値を持つ新しいオブジェクトを返すだけです。{"data":[ {...}, {...}, ]} を返す代わりに、データの値を返すだけです。何かのようなもの:

xyz_post_poll: function(bundle){
  var response = JSON.parse(bundle.response.content);
  return response.data || [];
}
4

3 に答える 3

4

はい、簡単なスクリプト、Javascript、または Python を使用できます。既存のトリガーとアクションの間の+をクリックし、アプリとして Code by Zapier を選択してアクションを追加します。JSON がトリガーの出力であると仮定します。

{
  "data": [
    {
      "type": "name",
      "id": "123"
    }
  ]
}

Code by Zapier には、次のオプションが表示されます。

Zapier Run Javascriptによるセットアップコード

オブジェクトの配列にdata複数の要素がある場合、Zapier はtypeそれらのオブジェクトのプロパティのすべての値をData Typeというラベルの付いた配列として、プロパティのすべての値をData IDidというラベルの付いた配列として表示します。コード アプリに渡すオブジェクトのプロパティ名としてとを選択した場合、コードが取得する Javascript オブジェクトは次のようになります。typeidinput

input = {
 type: [ "name", "name2", "name3" ],
 id: [ "123", "456", "789" ]
};

コードは、次のアクションに渡す前に、必要な方法でデータを変換できます。

Zapierによるコード

于 2016-04-04T01:47:58.483 に答える
1

Zapier の Code By Zapier JavaScript エンジンを使用して解析する場合は、次のようにします。

Zapier は指定したオブジェクトを返すため、標準名を に使用すると仮定すると、次inputのようになります。

output = {};

for (var i = 0; i < input["data"].length; i++) {
  output["myObject"+str(i)] = input.data[i];
}

これにより、次のようなオブジェクトが返さoutputれます。

"output" : {
    "myObject0" : {  
      "type": "name",
      "id": "123"
    },
    "myObject1" : {
      "type" : "name",
      "id": "124"
    }
}
于 2016-04-04T01:57:18.400 に答える