2016-04-03 15 views
0

JSON.parse dizisine "veri." Çalışıyorum. Diziyi root olarak geçirmem gerekiyor.JSI.a'yı bir Zapier Tetikleyicide nasıl ayırırım?

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

Yanıt, yalnızca nesneleri içeren bu gibi görünmelidir. Zapier dizilerle iyi çalışmıyor gibi gözüküyor.

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

İşi tamamlamak için basit bir komut dosyası kullanamıyorum mı?


DÜZENLEME:

Esasen, sen API yanıtını önünü böylece komut dosyası içinde post_poll yöntemi (https://zapier.com/developer/documentation/v2/scripting/#polling) geçersiz kılmak istediğiniz gidiyoruz. Bundan sonra, sadece istediğiniz bir değerle yeni bir nesne döndürmeniz gerekir. Geri dönmek yerine: {"data": [{...}, {...},]}, sadece verilerin değerini döndürmeniz gerekiyor. Şunlar gibi:

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

Zapier'le aşina değilim, esasen jsonunuzla başlayan ve o nesneyi döndüren bir işlev mi soruyorsunuz? – JordanHendrix

cevap

1

Evet, basit bir betik, Javascript veya Python kullanabilirsiniz. Mevcut Tetikleyici ve Eylem arasında +'u tıklayın ve uygulama olarak Zapier Kodunu seçerek bir Eylem ekleyin.

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

Zapier tarafından Kod bu seçeneklerden size sunacaklarını: senin Tetikleyici çıkış sizin JSON olduğunu varsayarsak

Setup Code by Zapier Run Javascript

Eğer, Zapier birden fazla elemanı vardır data nesneleri dizisi type mülkünün tüm değerlerini Veri Türü etiketli bir dizi olarak ve bir dizi lab özelliği olarak id tüm değerleri için tüm değerleri sunar. Erime noktası Veri numarası. input nesne Kod uygulamasına geçirilecek için mülk adları gibi type ve id seçerseniz, JavaScript kodunuzu alır nesne şudur:

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

ardından verilerini istediğiniz şekilde dönüştürebilir Kodunuz Bir sonraki eyleme geçmeden önce.

Code by Zapier,

+0

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - [Yorum Yaz] (/ review/düşük kaliteli yazılar/11879934) – Aziz

+1

Sadece bunu yapmak için orijinal yazı düzenlendi. Yapıcı tavsiye için teşekkürler. –

1

bunu Zapier en Kod By Zapier JavaScript motorunu kullanır ayrıştırma bahsediyoruz, o zaman burada böyle yapar: siz söyleyinceye ne nesne için kullandığınız varsayarak

Zapier döner onların Bu aşağıdaki gibi bir nesne görünüyor output denilen dönmelidir

output = {}; 

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

: input için standart isim, burada böyle yapar

"output" : { 
    "myObject0" : { 
     "type": "name", 
     "id": "123" 
    }, 
    "myObject1" : { 
     "type" : "name", 
     "id": "124" 
    } 
} 
2

Bunun işe yaraması için JSON.parse() ve JSON.stringify() numaralı telefonu aramam gerektiğini buldum.benim giriş olarak Zapier putted alır varsayalım (anahtar, değer) anahtar = verileri ve değerdir:

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

My kodu:

output = {}; 

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

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

üretilen çıktı olan:

myObject0: {"type":"name", "id":"123"} 
myObject1: {"type":"name2", "id":"456"} 
myObject2: {"type":"name3", "id":"789"} 
İlgili konular