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

再帰JavaScriptを使用してJSONを別のJSON形式に変換する


次のJSONオブジェクトがあるとします-

const obj = {
   "context": {
      "device": {
         "localeCountryCode": "AX",
         "datetime": "3047-09-29T07:09:52.498Z"
      },
      "currentLocation": {
         "country": "KM",
         "lon": -78789486,
      }
   }
};

最初にそのような配列を1つ取り込むJavaScript再帰関数を作成する必要があります。この関数は、上記のオブジェクトを「ラベル」-「子」形式に分割する必要があります。

したがって、上記のオブジェクトの出力は次のようになります-

const output = {
   "label": "context",
   "children": [
      {
         "label": "device",
         "children": [
         {
            "label": "localeCountryCode"
         },
         {
            "label": "datetime"
         }
      ]
   },
   {
      "label": "currentLocation",
      "children": [
            {
               "label": "country"
            },
            {
               "label": "lon"
            }
         ]
      }
   ]
}

このためのコードは-

になります

const obj = {
   "context": {
      "device": {
         "localeCountryCode": "AX",
         "datetime": "3047-09-29T07:09:52.498Z"
      },
      "currentLocation": {
         "country": "KM",
         "lon": -78789486,
      }
   }
};
const transformObject = (obj = {}) => {
   if (obj && typeof obj === 'object') {
      return Object.keys(obj).map((el) => {
         let children = transformObject(obj[el]); return children ? {
             label: el, children: children } : {
            label: el
         };
      });
   };
};
console.log(JSON.stringify(transformObject(obj), undefined, 4));

出力

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

になります
[
   {
      "label": "context",
      "children": [
         {
            "label": "device",
            "children": [
               {
                  "label": "localeCountryCode"
               },
               {
               "label": "datetime"
               }
            ]
         },
         {
            "label": "currentLocation",
            "children": [
                  {
                     "label": "country"
                  },
                  {
                     "label": "lon"
                  }
               ]
            }
      ]
   }
]

  1. JSONテキストをJavaScriptJSONオブジェクトに変換する方法は?

    JSON parse()メソッドは、JSONテキストをJavaScriptオブジェクトに変換するために使用されます。 以下は、JSONテキストをJavaScriptJSONオブジェクトに変換するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scal

  2. 24時間形式を12時間に変換するJavaScriptプログラム

    以下は、JavaScriptで24時間形式を12時間に変換するコードです- 例 <!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> &n