我使用Google Apps脚本来解析一些JSON并且它无法正常工作......
这是我的伪代码:
function fetchInsta() {
var url = "xxx";
Logger.log(url);
var result = UrlFetchApp.fetch(url);
var json = JSON.parse(result.getContentText());
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var existingids = sheet.getRange("D:D");
for(i in json.data){
for(j in existingids){
if(json.data[i].id = existingids[i]){
var match = true;
}
}
if(match != true){
var id = json.data[i].id;
var image = json.data[i].images.standard_resolution.url;
var username = json.data[i].user.username;
var link = json.data[i].link;
var date = json.data[i].createdtime;
sheet.appendRow([image,username,link,id,date]);
Logger.log([image,username,link,id,date]);
}
}
}
我删除了网址,因为其中包含我的API密钥。但是这里返回了JSON的样本:
"data":[
{
"attribution":null,
"tags":[ ],
"type":"image",
"location":{ },
"comments":{ },
"filter":"Normal",
"created_time":"1430751422",
"link":"https:\/\/instagram.com\/p\/2Q6AiIG4hT\/",
"likes":{ },
"images":{ },
"users_in_photo":[ ],
"caption":{ },
"user_has_liked":false,
"id":"977536242480285779_10266761",
"user":{ }
},
我得到变量图片,用户名,链接很好 - 但是id和日期都是未定义的。有什么想法发生了什么?我做错了什么?
答案 0 :(得分:2)
这行代码:
if(json.data[i].id = existingids[i]){
使用赋值运算符来测试是否相等。平等测试用双重或三重等号完成。如有疑问,请使用三等号。
应该是:
if(json.data[i].id === existingids[i]){