使用 Google 脚本解析 JSON 时遇到问题
Trouble parsing JSON with Google Scripts
我正在使用 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]);
}
}
}
我删除了 URL,因为它里面有我的 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":{ }
},
我得到的变量图像、用户名、link 很好 - 但 id 和日期都未定义。任何想法发生了什么?我做错了什么?
这行代码:
if(json.data[i].id = existingids[i]){
正在使用赋值运算符来测试相等性。相等性测试是用两个或三个等号完成的。如有疑问,请使用三个等号。
应该是:
if(json.data[i].id === existingids[i]){
我正在使用 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]);
}
}
}
我删除了 URL,因为它里面有我的 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":{ }
},
我得到的变量图像、用户名、link 很好 - 但 id 和日期都未定义。任何想法发生了什么?我做错了什么?
这行代码:
if(json.data[i].id = existingids[i]){
正在使用赋值运算符来测试相等性。相等性测试是用两个或三个等号完成的。如有疑问,请使用三个等号。
应该是:
if(json.data[i].id === existingids[i]){