我正在为@ post工作制作一个跟踪系统,到目前为止我觉得我完成了90%,但是我遇到了一个问题。
我已将此脚本添加到Google电子表格中: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
如果您看到来源,则源https://tracking.bring.com/api/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT中有几个“状态”,这就是它获取所有结果的原因。我想要的是在谷歌电子表格中获取状态的最后结果。这使它看起来更干净,并且使用较少的细胞也没有用。提供的网址是一个测试包,但是当我们发送时,它会获得更多“状态”,最多可以达到5种状态。
TLDR:想要获得一个状态结果,而不是几个 - >>将数据导入Google电子表格时https://tracking.bring.com/api/tracking.json?q=TESTPACKAGE-AT-PICKUPPOINT。
答案 0 :(得分:0)
您需要修改最终输出数组。为此,添加/修改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;
}