2017-02-15 27 views
-1

JSONを指定された形式からJSONに変換するための再帰関数を作成してください。私はそれをやる方法が少し失われています。 ありがとうございました! 以下は、私が変換しなければならないサンプルのJSON形式です。JSONを別のJSON形式に変換して再帰

これが提供されています

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

これは私が取得しようとしていますものです:

{ 
    "label": "context", 
    "children": [ 
    { 
     "label": "device", 
     "children": [ 
     { 
      "label": "localeCountryCode" 
     }, 
     { 
      "label": "datetime" 
     } 
     ] 
    }, 
    { 
     "label": "currentLocation", 
     "children": [ 
     { 
      "label": "country" 
     }, 
     { 
      "label": "lon" 
     } 
     ] 
    } 
    ] 
} 
+3

?私たちはあなたが持っているフォーマットとあなたが望むフォーマットなしでこれに答えることはできません。 – zack6849

+1

あなたは関連情報を含めるのを忘れてしまったようです。作業しているデータの例を含めてください。 – Lix

+0

ありがとう、私は関連情報を追加しました。 – Eden1971

答えて

0

あなたがオブジェクトがtruthyであるかどうかをチェックし、オブジェクトのキーを得ることができます。次に、ラベルを持つオブジェクトと関数の再帰呼び出しの結果を持つchildrenプロパティをすべてのキーに対して返します。フォーマットを指定したものを

function transform(o) { 
 
    if (o && typeof o === 'object') { 
 
     return Object.keys(o).map(function (k) { 
 
      var children = transform(o[k]); 
 
      return children ? { label: k, children: children } : { label: k }; 
 
     }); 
 
    } 
 
} 
 

 
var object = { context: { device: { localeCountryCode: "AX", datetime: "3047-09-29T07:09:52.498Z" }, currentLocation: { country: "KM", lon: -78789486, } } }, 
 
    result = transform(object); 
 

 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

ありがとうございます! – Eden1971

関連する問題