2016-04-03 33 views
0

我正在嘗試JSON.parse數組「數據」。我需要能夠作爲根傳遞數組。如何在Zapier觸發器中使用JSON.parse數組?

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

響應應該看起來像這樣只包含對象。 Zapier似乎不適合數組。

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

我不應該使用簡單的腳本來完成工作嗎?


編輯:

從本質上講,你會想覆蓋post_poll方法(https://zapier.com/developer/documentation/v2/scripting/#polling)的腳本,所以你可以攔截API的響應。之後,你只需要返回一個新的對象與你想要的值。而不是返回:{「data」:[{...},{...},]},您只需要返回數據的值。例如:

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

我不熟悉Zapier,你是否真的要求一個以你的json開頭並返回該對象的函數? – JordanHendrix

回答

1

是的,您可以使用簡單的腳本,Javascript或Python。在您現有的觸發器和動作之間點擊+,然後添加一個動作,選擇Zapier編碼作爲應用。假設你的JSON是您的觸發器的輸出:

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

通過Zapier代碼將您呈現這些選項:

Setup Code by Zapier Run Javascript

如果對象的數組data有超過一個元素,那麼Zapier呈現在這些對象的屬性type所有值作爲數組標記數據類型和財產id作爲數組實驗室的所有值elled 數據ID。如果您選擇typeid的屬性名稱爲input對象傳遞給程式,然後JavaScript對象代碼得到的是這樣的:

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

你的代碼,然後可以將這些數據,您想要的任何方式,然後傳遞給下一個Action。

Code by Zapier

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/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"}