在数组中获取单个JSON对象

时间:2020-10-27 09:37:37

标签: javascript json

我有一些具有如下数组结构的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);
}
  

谢谢!

1 个答案:

答案 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 })

相关问题