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返回感觉更干净(自我安慰)
没有评论:
发表评论