2017-02-05 11 views
1
に値を追加

のは、私がフォームに設定されたJSONデータを持っているとしましょう:JSONデータセット

{ "fruits": { 
    "apple": { 
     "color": red, 
     "size": small 
    } 
    "orange": { 
     "color": orange, 
     "size": small 
    } 
} 

私はそれぞれに(データを解析するためにはJavaScriptのようなものを使用して)、余分な名前のデータポイントを追加する方法彼らはこのように見えるように:

{ "fruits": { 
    "apple": { 
     "color": red, 
     "size": small, 
     "name": apple 
    } 
    "orange": { 
     "color": orange, 
     "size": small, 
     "name": orange 
    } 
} 

私はidとnameの値の両方が果物の名前で持って冗長に見えるかもしれません知っているが、私は私が働いているプログラムのためにこのような構造を必要としています。助言がありますか?

"apple": { 
    "color": "red", 
    "size": "small" 
} 

そして、あなたはあなたの2つの果物の間にコンマが必要になります。彼らは変数ですが、私は、彼らがしているとは思わない、すなわちない限り

答えて

2

いくつまず、あなたの特性は、(引用符でなければなりません。

今あなたがしなければならないすべては、それぞれの果実を巡回し、その名前に等しい新しいプロパティを追加します。

for (var property in data.fruits) { 
    if (data.fruits.hasOwnProperty(property)) { 
     data.fruits[property].name = property; 
    } 
} 

スクエアブラケット表記法を使用して、動的または可変のPRにアクセスすることができます名前のプロパティをかなり正直に設定します。配列を反復処理する方法については、this answerを参照してください。

以下のスニペットは、アクションのコードを示します。

var data = { 
 
\t "fruits": { 
 
\t \t "apple": { 
 
\t \t \t "color": "red", 
 
\t \t \t "size": "small" 
 
\t  }, 
 
\t \t "orange": { 
 
\t \t \t "color": "orange", 
 
\t \t \t "size": "small" 
 
\t \t } 
 
\t } 
 
} 
 

 

 

 
for (var property in data.fruits) { 
 
    if (data.fruits.hasOwnProperty(property)) { 
 
\t \t data.fruits[property].name = property; 
 
    } 
 
} 
 

 

 
console.log(data);

+0

感謝を!出来た。 – ch1maera

関連する問題