我正在使用Google Apps脚本和Google表格从JSON文件导入数据。我已经了解了这方面的基础知识,但JSON file I am attempting to parse的格式化让我失望。
令我困惑的是我如何根据“名字”搜索信息。目前我正在使用这个:
function JSONReq(url, xpath){
var res = UrlFetchApp.fetch(url);
var content = res.getContentText();
var json = JSON.parse(content);
var patharray = xpath.split("/");
for(var i = 0; i < patharray.length; i++){
json = json[patharray[i]];
}
return json;
}
对你说实话,我现在有点迷失了。我想要一个单元格,我可以在其中输入我已经知道的名称,然后在JSON文件中找到它并拉回信息,但我决定这样做。我可以拉和写入细胞,我有基础知识。但我无法理解如何通过名称搜索。
该JSON文件是一个对象数组。要查找具有给定"name"
的特定对象,您可以将其解析为一个对象(您已经执行过),然后遍历它们并检查name参数:
var myName = "name of thing I want";
var arr = JSON.parse( ... );
for(var i = 0; i < arr.length; ++i) {
var obj = arr[i];
if(obj.name == myName) { // could be done as obj["name"] == ... too
// do stuff with obj
}
}
对于您的情况,您可以为函数添加一个额外的参数(即第二个arg =对象的属性,例如"name"
,第三个=所需的值。这对于任何简单的键值属性都可以,但需要特定的处理对于值本身就是对象的位置(例如,特定JSON文件中的“类别”字段)。