2017-07-18 8 views
-3

ここで私のオブジェクトサンプルです。私はループし、すべての内部オブジェクト内に動的に{"type": "object"}割り当てる必要があります。Javascriptオブジェクト内のオブジェクトを動的に割り当てます。

入力:

するvar favoriteFruit = { "エイミー":{ "DESC": "エイミーのFAV"、 "フルーツ":{ "名前": "バナナ"、 "色": "赤" } }、 "ベン":{ "DESC": "ベンのFAV"、 "フルーツ":{ "名前": "アップル"、 "色": "赤" } }、 "Carol":{ "desc" : "キャロルのFAV"、 "果実":{ "名前": "CHERRY"、 "色": "赤" } }、 "オリビア":{ "DESC": "オリビアのFAV"、 "果物":{ "名前" "ORANGE"、 "色": "ORANGE" } }、 "Pualine":{ "DESC": "Pualine FAV"、 "果実":{ 「名前」:「梨」、 「色」:「緑色」 } } };

予想される出力:

var favoriteFruit = { 
    "Amy": { 
     "type": "object", 
     "desc": "Amy's fav", 
     "fruit": { 
      "Name" : "Banana", 
      "color" : "Red" 
     } 
    }, 
    "Ben": { 
     "type": "object", 
     "desc": "Ben's fav", 
     "fruit": { 
      "Name" : "Apple", 
      "color" : "Red" 
     } 
    }, 
    "Carol": { 
     "type": "object", 
     "desc": "Carol's fav", 
     "fruit": { 
      "Name" : "Cherry", 
      "color" : "Red" 
     } 
    }, 
    "Olivia": { 
     "type": "object", 
     "desc": "Olivia fav", 
     "fruit": { 
      "Name" : "Orange", 
      "color" : "Orange" 
     } 
    }, 
    "Pualine": { 
     "type": "object", 
     "desc": "Pualine fav", 
     "fruit": { 
      "Name" : "Pear", 
      "color" : "Green" 
     } 
    } 
}; 
+0

ようこそ[スタックオーバーフロー]にhttps://stackoverflow.com/)!このサイトでは、自分でコードを書くことができます**。 [ research more](https://meta.stackoverflow.com/questions/261592)の後に問題がある場合は、あなたが試したものを投稿することができます** **最小限で完全で証明可能な例(https://stackoverflow.com/help/mcve)を提供しています。私は[良い質問をする方法](https://stackoverflow.com/questions/how-to-ask)を読むことをお勧めします。また、[ツアー](https://stackoverflow.com/tour)も必ずお読みください。 –

+1

これはJSONではありません。これは単なる通常のJavaScriptオブジェクトです。 JSONは文字列です。 –

答えて

0

は、あなたが実際にJSON文字列を持っていないが、それは今あるように私はそれを引用しました。

コメントインライン参照してください:

var favoriteFruit = `{ 
 
    "Amy": { 
 
     "desc": "Amy's fav", 
 
     "fruit": { 
 
      "Name" : "Banana", 
 
      "color" : "Red" 
 
     } 
 
    }, 
 
    "Ben": { 
 
     "desc": "Ben's fav", 
 
     "fruit": { 
 
      "Name" : "Apple", 
 
      "color" : "Red" 
 
     } 
 
    }, 
 
    "Carol": { 
 
     "desc": "Carol's fav", 
 
     "fruit": { 
 
      "Name" : "Cherry", 
 
      "color" : "Red" 
 
     } 
 
    }, 
 
    "Olivia": { 
 
     "desc": "Olivia fav", 
 
     "fruit": { 
 
      "Name" : "Orange", 
 
      "color" : "Orange" 
 
     } 
 
    }, 
 
    "Pualine": { 
 
     "desc": "Pualine fav", 
 
     "fruit": { 
 
      "Name" : "Pear", 
 
      "color" : "Green" 
 
     } 
 
    } 
 
}`; 
 

 
// Turn the JSON into an object 
 
var obj = JSON.parse(favoriteFruit); 
 

 
// Loop through the object's properties 
 
for(var prop in obj){ 
 
    // Give each object a new property/value 
 
    obj[prop].type = "Object"; 
 
} 
 

 
console.log(obj);

+0

"type":最初の位置に "object"を持つことは可能ですか? "Pualine":{ \t "タイプ": "オブジェクト"、 "DESC": "Pualine FAV"、 "果実":{ "名前": "ナシ"、 "色": "緑" } } – user2553117

+0

@ user2553117いいえ、オブジェクト内の一連のプロパティは保証されません。そして、率直に言って、あなたが必要となる理由はありません。 –

0

Object.keys()を使用してアクセスキーを繰り返し処理し、その後、Object.assign()を使用して、そこから行く:

var favoriteFruit = { 
 
    "Amy": { 
 
    "desc": "Amy's fav", 
 
    "fruit": { 
 
     "Name": "Banana", 
 
     "color": "Red" 
 
    } 
 
    }, 
 
    "Ben": { 
 
    "desc": "Ben's fav", 
 
    "fruit": { 
 
     "Name": "Apple", 
 
     "color": "Red" 
 
    } 
 
    }, 
 
    "Carol": { 
 
    "desc": "Carol's fav", 
 
    "fruit": { 
 
     "Name": "Cherry", 
 
     "color": "Red" 
 
    } 
 
    }, 
 
    "Olivia": { 
 
    "desc": "Olivia fav", 
 
    "fruit": { 
 
     "Name": "Orange", 
 
     "color": "Orange" 
 
    } 
 
    }, 
 
    "Pualine": { 
 
    "desc": "Pualine fav", 
 
    "fruit": { 
 
     "Name": "Pear", 
 
     "color": "Green" 
 
    } 
 
    } 
 
} 
 

 
Object.keys(favoriteFruit).forEach(function (key) { 
 
    Object.assign(favoriteFruit[key], { type: 'object' }) 
 
}) 
 

 
console.log(favoriteFruit)

あなたは本当に(キーが最終的に順序付けられていないので、これは仕様で保証されていませんが)文字列化する場合、最初のキーは、あなたの代わりにこれを使用することができますされている程度typeを気にしている場合:(

Object.keys(favoriteFruit).forEach(function (key) { 
    favoriteFruit[key] = Object.assign({ type: 'object' }, favoriteFruit[key]) 
}) 
関連する問題