2016-04-03 16 views
0

私はJSON.parse配列"データ"しようとしています。私はルートとして配列を渡すことができる必要があります。Zapier Triggerで配列をJSON.parseするにはどうすればよいですか?

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

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

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

ジョブを完了するために単純なスクリプトを使用できませんか?


EDIT:

は基本的に、あなたは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 || []; 
} 
+0

私はZapierに慣れていません。基本的にjsonで始まりそのオブジェクトを返す関数を求めていますか? – JordanHendrix

答えて

1

はい、あなたは簡単なスクリプトは、JavaScriptやPythonを使用することができます。既存のTriggerとActionの間に+をクリックし、アクションとしてCodeをZapierとしてアプリを追加します。あなたのJSONと仮定すると、あなたのトリガの出力です:Zapierによって

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

コードは、これらのオプションを提示します:

Setup Code by Zapier Run Javascript

オブジェクトの配列がZapier、その後、複数の要素を持っているdata場合これらのオブジェクトのプロパティtypeのすべての値をというデータ型で表示します。データ型および配列ラボとしてのプロパティidのすべての値elled データID。あなたはコードアプリに渡されるinputオブジェクトのプロパティ名としてtypeidを選択した場合は、Javascriptがあなたのコードが取得するオブジェクトはこれです:

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

あなたのコードは、データあなたが好きなように変えることができます次のアクションに移る前に。

Code by Zapier

+0

このリンクは質問に答えるかもしれませんが、ここに答えの重要な部分を含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 11879934) – Aziz

+1

編集したオリジナルの投稿は、それだけです。建設的なアドバイスをありがとう。 –

1

あなたはそれがここにあなたが何をすべきかだ、その後、Zapierのコードで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" 
    } 
} 
2

これを機能させるには、JSON.parse()JSON.stringify()に電話する必要があることがわかりました。私の入力としてZapierにパットされることを仮定する(キー、値)キー=データと値がある:

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

マイコード:

output = {}; 

var obj = JSON.parse(input.data); 

for (var i = 0; i < obj.length; i++) { 
    output["myObject"+i] = JSON.stringify(obj[i]); 
} 

生成された出力である:

myObject0: {"type":"name", "id":"123"} 
myObject1: {"type":"name2", "id":"456"} 
myObject2: {"type":"name3", "id":"789"} 
関連する問題