从 Google Sheet Script 将 JSON 数组发送到网络服务

Posted

技术标签:

【中文标题】从 Google Sheet Script 将 JSON 数组发送到网络服务【英文标题】:Sending JSON array to webservice from Google Sheet Script 【发布时间】:2015-01-10 21:34:37 【问题描述】:

我们有一个返回产品信息的网络服务。该服务需要在发布数据中包含一个 JSON 数组...

一个简单的 html 测试网页的示例脚本如下(按预期工作):

&ltscript src="//code.jquery.com/jquery-1.11.2.min.js">

【问题讨论】:

作为一种解决方法,因为您可以访问 PHP 代码,而不是提供 JSON,而是提供 HTML,并使用 URL GET 参数进行请求。 【参考方案1】:
var options = 
  "method":  'POST', 
  "payload": JSON.stringify(payload)
;

或将 pid 和字段的每个值字符串化。

【讨论】:

【参考方案2】:

乔纳森 - 您建议的评论就是解决方案....

这不起作用:

var options =
 
 "method": 'POST',
 "payload": JSON.stringify(payload)
 ;

但有效载荷数组元素上的字符串化有效(请注意,简单元素在没有字符串化的情况下也有效,例如 'text' : "some text here"):

 var nids = [658,71,6,700 ];
 var fields = ['pid','CostPrice','type','published','title']
 var payload =
       
      pid : JSON.stringify(nids),
      fields: JSON.stringify(fields)
   ;
var options =
 
 "method": 'POST',
 "payload": payload
 ;

【讨论】:

【参考方案3】:

我想我已经解决了同样的问题: How to send a post request with an array in payload by urlfetchapp

必须以这种方式准备有效负载!我在制作解决方法 PHP 脚本时发现了这个解决方案。

  var payload =
             
        "fields[0]":"firstString",
        "fields[1]":"anotherString in array",        
      

不是很直观,但对我来说效果很好!

【讨论】:

以上是关于从 Google Sheet Script 将 JSON 数组发送到网络服务的主要内容,如果未能解决你的问题,请参考以下文章

Google Sheet Script:有没有办法在不停止脚本的情况下显示消息?

如何从 Google Sheet API 导出 csv?

从名称中获取 Google Sheet URL

Google-Apps-Script 无法使用 getDataRange().setValues() 写回数据库

从 Google Sheet API v4 追加数据不再起作用

从app inventor中的google sheet调用用户名和密码