2012-04-12 8 views
2

Ich habe den folgenden Code, der nicht funktioniert. Ich versuche, den Text "John" auf das Ende des Objekts zu schieben. Ich bin vertrauter mit PHP und das funktioniert in PHP.So weisen Sie dem JSON-Objekt Werte zu

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

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

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

Edit:

Ich habe versucht, auch die folgenden, und es hat nicht funktioniert.

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

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

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

Antwort

1

versuchen, dies:

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

Das ist nicht aus irgendeinem Grund zu arbeiten. Ich habe Ihren Code genau so getestet, wie er geschrieben wurde. – Stephen305

+0

Hinzugefügt eine weitere Zeile wiederholen bitte –

+0

Antworten müssen zuerst in einem Objekt sein: http://jsfiddle.net/mplungjan/EVsM2/ var DataObj = { "first_name": { "Antworten": [ "John"] } } – mplungjan

0

Man kann nicht beliebig mehr Array-Dimensionen definieren oder dynamisch Grenzen wie PHP verlängern wird gerne ermöglichen. Sie werden so etwas wie dies tun müssen (. Die Kurzschrift [] Notation auch anstelle von neuen Array verwendet werden kann() Ich ziehe es nur auf diese Weise.):

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() sollte var data = {} und sein Daten [Feldname] = neues Array(); sollte Daten [field_name] = {} und Daten [Feldname] ['Antworten'] = new Array(); sollte Daten sein [Feldname] ['Antworten'] = []; – mplungjan

Verwandte Themen