昨天,今天,明天,每天的每天,你是否都多懂得一点点...

星期一, 八月 27, 2018

[网络技术] A workaround to use json data with Google Apps script 如何在谷歌Apps Script里面读本地JSON数据

Tags: Google Apps Script, Json

现在很多API返回的数据都是JSON的格式, 因为他可以很容易的Serialize 转成程序的对象。用谷歌的Apps script 读取JSON的数据不是个问题, 但是有时候我想把JSON数据存在APPs Script本地, 并不想再从Apps Script 里面再发一个请求去拿这个JSON数据。 可惜的是谷歌 APPS script 并不允许新增JSON文件, 也不提供读取本地文件地方法, 除了HTML文件。

但是我发现一个有趣的事, 当我把JSON数据赋给一个变量的时候, 这个JSON数据会被自动的转成Javascript 对象。 如下图, 你会发现我 JSON.parse(members) 这个字符串的结果和我直接把JSON数据赋值给objMember 的结果是一样的。



#img1#




这代表一个非常好的消息, 说明我们只要把Json数据原封不动的复制进来就可以使用。 如下图, 你也可以赋一个Array 进来。


#img2#


[javascript]
function myFunction() {
 var dataAll = JSON.parse(members); 
 Logger.log(dataAll);
 var objM = this.objMembers;
 Logger.log(objM);
  
}

var members='{"testKey": "testValue"}';
var objMembers =[
{"John Li ": ""},
{"vero cheng": ""},
];
[/javascript]


所以我们可以新建很多gs 文件来存JSON数据, 这里有一个问题, 就是在一个文件里面定义的变量不能在另一个文件里使用, 所以你在新建文件里面定义的变量是没有用的。 但你也绝对不会想把所有的数据放在一起。

但我想到了一个好方法, 虽然变量不是全局的, 但是function 是, 只要在这个文件里再加一个function 来返回这个变量, 就可以了。就像下面这张图里表示的一样。

#img3#


[javascript]
function getDataChannels(){
  return dataChannels;
}

var dataChannels =
[
  {
    "kind": "youtube#channelListResponse",
    "pageInfo": {
      "totalResults": 1,
      "resultsPerPage": 1
    }
  }
]

[/javascript]


然后在另一个文件中, 你可以这样访问你的JSON数据。

#img4#


好把, 经过再一次试验, 我发现变量是全局的,并不需要用function来返回。 但我懒得改上面的图片了。用function返回感觉更干净(自我安慰)



没有评论:

其它博客地址

此博客的同步博客地址: http://fengnz.wordpress.com
这里进入我的MSN SPACE.