Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

キーで読み取り、JavaScriptでJSONとして解析します


このようなJSON配列があるとします-

const arr = [{
   "data": [
      { "W": 1, "A1": "123" },
      { "W": 1, "A1": "456" },
      { "W": 2, "A1": "4578" },
      { "W": 2, "A1": "2423" },
      { "W": 2, "A1": "2432" },
      { "W": 2, "A1": "24324" }
   ]
}];

そのような配列を1つ取り込んで、それを次のJSON配列に変換するJavaScript関数を作成する必要があります-

[
   {
      "1": [
         {
            "A1": "123"
         },
         {
            "A1": "456"
         }
      ]
   },
   {
      "2": [
         {
            "A1": "4578"
         },
         {
            "A1": "2423"
         },
         {
            "A1": "2432"
         },
         {
            "A1": "24324"
         }
      ]
   }
];

const arr = [{
   "data": [
      { "W": 1, "A1": "123" },
      { "W": 1, "A1": "456" },
      { "W": 2, "A1": "4578" },
      { "W": 2, "A1": "2423" },
      { "W": 2, "A1": "2432" },
      { "W": 2, "A1": "24324" }
   ]
}];
const groupJSON = (arr = []) => {
   const preCombined = arr[0].data.reduce((acc, val) => {
      acc[val.W] = acc[val.W] || [];
      acc[val.W].push({ A1: val.A1 });
      return acc;
   }, {});
   const combined = Object.keys(preCombined).reduce((acc, val) => {
      const temp = {};
      temp[val] = preCombined[val];
      acc.push(temp);
      return acc;
   }, []);
   return combined;
};
console.log(JSON.stringify(groupJSON(arr), undefined, 4));

出力

そして、コンソールの出力は-

になります
[
   {
      "1": [
         {
            "A1": "123"
         },
         {
            "A1": "456"
         }
      ]
   },
   {
      "2": [
         {
            "A1": "4578"
         },
         {
            "A1": "2423"
         },
         {
            "A1": "2432"
         },
         {
            "A1": "24324"
         }
      ]
   }
]

  1. JavaScriptを使用してJSON配列からデータを読み取る方法は?

    以下は、JavaScriptを使用してJSON配列からデータを読み取るためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style

  2. JavaScriptでJSONを解析して、特定の名前と値のペアを表示しますか?

    JSONを解析するには、parseJSON()を使用し、特定のペアを表示するには、$。each()関数を使用します。 以下が解析されるJSONであるとしましょう- const APIData = '[{"Name":"John","Age":21},{"Name":"David","Age":24},{"Name":"Bob","Age" :20}]'; const getObject = jQuer