Как передать 2D массив в GET запросе?
Нужно передать 2D массив в GET запросе. Массив преобразую в строку так:
var params = JSON.stringify (SKU_ids_get)
var apiconnection={'url':url,'key':apikey}
var paramstring =''
for(var key in params) { // преобразуем массив параметров в строку
var value=params[key]
paramstring = paramstring + "&" + key + "=" + value
}
paramstring = paramstring.substr(1) // убираем из строки первый знак конкотенации
var url = apiconnection['url']+paramstring+"&key="+apiconnection['key'] //
UrlFetchApp.fetch (url,{muteHttpExceptions: true}) - ругается, без массива все работает
Вот таким получается параметр url, на который ругается:
http://zapto.org/api/v1/update_sku_list?sku_ids=[["ПЖ214-1"],["ПЖ214-2"],["ПЖ214-4"]]&sku_vendor_info=[["ВХ",11,"Венеция","https://pravt/com/orders/"],[1,0,"",""],[3,0,"",""]]&key=12345
Насколько я понимаю, массив нужно сериализовать, аналогично php serialize. Но как это сделать в GAS?
Ответы (1 шт):
Автор решения: Sturmer
→ Ссылка
С трудом нашел как решить задачу. Итак:
На стороне GAS:
var params = encodeURIComponent(JSON.stringify({"payment":{"0":"X","1":"Y"}})) url = "http://zapto.org/api/v1/update_sku_list?obj="+params UrlFetchApp.fetch (url,{muteHttpExceptions: true})
На стороне сервера PHP:
$payment = json_decode($_GET['params']['obj']['payment']);