javascript 2階層あるjsonデータを1次元配列として出力する

javascript 2階層あるjsonデータを1次元配列として出力する

javascriptで、2階層あるjsonデータを1次元配列として出力するサンプルコードを記述してます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 84.0.4147.105

サンプル

jsonデータの値を取得して、文字列か数値であれば、そのまま配列化し、そうでなければ、もう1階層ループさせてJSONデータを1次元配列化します。

const json = '{"hoge1":1,"hoge2":{"foo1":"bbb","foo2":"ccc","foo3":"ddd"},"hoge3":"eee"}';

const x = JSON.parse(json);

let arr = [];

for (let key in x) {

  if ('' + x[key] === x[key] || 0 + x[key] === x[key]) { // 文字列(値)か数値であれば
    
    arr.push([key, x[key]]);

  } else {// 文字列か数値でなければ

    for (let key2 in x[key]) {
      if ('' + x[key][key2] == x[key][key2] ||  0 + x[key][key2] == x[key][key2]) {
        arr.push([key2, x[key][key2]]);
      }
    }
  }
}

console.log(arr);

実行結果