将json导入谷歌电子表格,一个字段会给出几个结果



我正在尝试为我们的post@工作制作一个跟踪系统,到目前为止,我觉得我已经完成了90%,但我遇到了一个问题。

我已将此脚本添加到谷歌电子表格中:https://gist.github.com/chrislkeller/5719258

现在,我正试图用这个"命令"提取数据:

=ImportJSON("https://tracking.bring.com/api/tracking.json?q="&A4;"/consignmentSet/packageSet/eventSet/recipientSignature,/consignmentSet/packageSet/eventSet/status,/consignmentSet/senderReference,/consignmentSet/packageSet/productName";"noInherit,noHeaders")

这是有效的,但它给了我多个关于状态的结果:

/consignmentSet/packageSet/eventSet/status

如果你看到源,它在源中有几个"STATUS"https://tracking.bring.com/api/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT,这就是它获得所有结果的原因。我想要的是在我的谷歌电子表格中获得最后的状态结果。这样可以让它看起来更干净,也可以减少使用的细胞。提供的url是一个测试包,但当我们发出时,它会得到更多的"STATUS",多达5种不同的状态。

TLDR:想要获得一个状态结果,而不是-->中显示的几个结果https://tracking.bring.com/api/tracking.json?q=TESTPACKAGE-将数据导入谷歌电子表格时使用AT-PICKUPPOINT。

您需要修改最终的输出数组。为此,在parseJSONObject_功能中添加/修改以下行

var temp =  data.slice(1);
var final_data = [[temp[0][0],temp[temp.length-1][1],temp[temp.length-1][2],temp[0][3]]];
return hasOption_(options, "noHeaders") ? (data.length > 1 ? final_data : new Array()) : data;

整个功能:

/** 
* Parses a JSON object and returns a two-dimensional array containing the data of that object.
*/
function parseJSONObject_(object, query, options, includeFunc, transformFunc) {
var headers = new Array();
var data    = new Array();
if (query && !Array.isArray(query) && query.toString().indexOf(",") != -1) {
query = query.toString().split(",");
}
if (options) {
options = options.toString().split(",");
}
parseData_(headers, data, "", 1, object, query, options, includeFunc);
parseHeaders_(headers, data);
transformData_(data, options, transformFunc);
var temp =  data.slice(1);
var final_data = [[temp[0][0],temp[0][1],temp[0][2],temp[0][3]]]; // Modified the index of the array
return hasOption_(options, "noHeaders") ? (data.length > 1 ? final_data : new Array()) : data;
}

相关内容

最新更新