2012-04-12 14 views
2

次のコードは動作しません。私はオブジェクトの終わりにテキスト "ジョン"をプッシュしようとしています。私はPHPをよく知っており、これはPHPで動作します。JSONオブジェクトに値を割り当てる方法

var data = {}; 
var field_name = "first_name"; 

data[field_name]['answers'][] = "John"; 

alert(data['first_name']['answers'][0]); 

編集:

は、私も次のことを試してみました、それが動作しませんでした。

var data = {}; 
var field_name = "first_name"; 
var i=0; 

data[field_name]['answers'][i] = "John"; 

alert(data['first_name']['answers'][0]); 

答えて

1

これを試してみてください。

var data = {}; 
var field_name = "first_name"; 
data[field_name] = {}; 
data[field_name].answers = []; 
data[field_name].answers.push("John"); 

alert(data['first_name'].answers[0]); 
+0

これは何らかの理由で機能しません。私は書かれたとおりにあなたのコードを正確にテストしました。 – Stephen305

+0

追加された別の行が最初のオブジェクトにする必要がありますhttp://jsfiddle.net/mplungjan/EVsM2/ = { "FIRST_NAME" するvar dataObj:{ "回答": "ジョン"] } } –

+0

回答を再試行してください – mplungjan

0

一つは、任意に、より配列の次元を定義したり、動的にPHPのような境界は喜んで許可する拡張することはできません。このようなことをする必要があります(簡略化した表記法は、新しいArray()の代わりに使用することもできます)。

var data = {}; 
var field_name = "first_name"; 

//Create the new dimensions 
data[field_name] = new Array(); 
data[field_name]['answers'] = new Array(); 
//Push the new element 
data[field_name]['answers'].push("John"); 

alert(data['first_name']['answers'][0]);​​​​​​​​​​​​​ 
+0

var data = new Array()はvar data = {}データ[フィールド名] =新しい配列(); はデータ[field_name] = {}で、 データ[field_name] ['answers'] = new Array()でなければなりません。 はデータでなければなりません[field_name] ['answers'] = []; – mplungjan

関連する問題