我有一些具有如下数组结构的json文件:
{
"00_85_03.g1t": {
"hash": "a05dc5727ee4a3d80202e7ce5c89168d",
"file_name": "00_85_03.g1t",
"version": "0",
"cacheclear_flag": 1,
"bundle_flag": 0,
"directory": "0000",
"firstflag": 0,
"size": 476380
},
"00_85_03_36th.g1t": {
"hash": "5d28224aa1f594c249da69a1976cc5b6",
"file_name": "00_85_03_36th.g1t",
"version": "0",
"cacheclear_flag": 1,
"bundle_flag": 0,
"directory": "0000",
"firstflag": 0,
"size": 831960
},
"00_85_03_all_battle.g1t": {
"hash": "ca654ed300998d97e96480cabcac4035",
"file_name": "00_85_03_all_battle.g1t",
"version": "0",
"cacheclear_flag": 1,
"bundle_flag": 0,
"directory": "0000",
"firstflag": 0,
"size": 700872
}
}
我想用所有“哈希”值制作一个变量。我正在使用Google App脚本将其插入电子表格中。到目前为止,我能够获得键的列表,但仍在努力从它们中提取“哈希”值。我敢肯定,这比我做的要容易,但只是学习JS。这是我所能完成的结果。
function chunkArray(myArray, chunk_size){
var index = 0;
var arrayLength = myArray.length;
var tempArray = [];
for (index = 0; index < arrayLength; index += chunk_size) {
myChunk = myArray.slice(index, index+chunk_size);
// Do something if you want with the group
tempArray.push(myChunk);
}
return tempArray;
}
function flatten(arrayOfArrays){
return [].concat.apply([], arrayOfArrays);
}
function showPickerJP() {
var rows = [Object.keys(json)];
var toRows = rows[0].length;
var rowsflate = flatten(rows);
var rowstocols = chunkArray(rowsflate, 1);
var results = [];
for(var i=0; i<toRows; i++){
results[i] = (rowstocols[i]);
}
var hashvalues = chunkArray(results,1);
Logger.log(hashvalues);
}
谢谢!
答案 0 :(得分:2)
要从json数据中获取所有hash
值,可以使用map,如下所示:
const hashList = Object.values(json).map(item => item.hash);
const json = {
"00_85_03.g1t": {
"hash": "a05dc5727ee4a3d80202e7ce5c89168d",
"file_name": "00_85_03.g1t",
"version": "0",
"cacheclear_flag": 1,
"bundle_flag": 0,
"directory": "0000",
"firstflag": 0,
"size": 476380
},
"00_85_03_36th.g1t": {
"hash": "5d28224aa1f594c249da69a1976cc5b6",
"file_name": "00_85_03_36th.g1t",
"version": "0",
"cacheclear_flag": 1,
"bundle_flag": 0,
"directory": "0000",
"firstflag": 0,
"size": 831960
},
"00_85_03_all_battle.g1t": {
"hash": "ca654ed300998d97e96480cabcac4035",
"file_name": "00_85_03_all_battle.g1t",
"version": "0",
"cacheclear_flag": 1,
"bundle_flag": 0,
"directory": "0000",
"firstflag": 0,
"size": 700872
}
};
const hashList = Object.values(json).map(item => item.hash);
console.log({ hashList })