2009-07-01 12 views
6

Mi objetivo es obtener una matriz JSON como éste:json array: ¿Cómo crear nuevos elementos de matriz?

var args = [{ name: 'test', value: 1 }, { key: 'test2', value: 2}]; 

¿Cómo puedo obtener el código de abajo para construir una matriz como la de arriba?

this.dependentProperties = []; //array 
function addDependentProperty(depName, depValue) {  
    dependentProperties.push(new Array(depName, depValue)); 
} 

Al utilizar el método push termino que tiene una notación JSON como éste:

args:{[["test1",1],["test2",2]]} 

Respuesta

28
dependentProperties.push({name: depName, value: depValue}); 
+2

La sintaxis que está mirando a la cara! –

8
var args = [{ name: 'test', value: 1 }, { key: 'test2', value: 2}]; 

... esto es una matriz en donde cada elemento es un associated- array (= hash, = objeto).

dependentProperties.push(new Array(depName, depValue)); 

... está presionando una (sub-) Matriz en la matriz principal. Eso no es lo mismo que una matriz asociativa. Ahora tiene una matriz heterogénea.

dependentProperties.push({name: depName, value: depValue}); 

... Esto está empujando una matriz asociada en su matriz de nivel superior. Esto es lo que quieres. Luca es correcto.

+0

gracias por la buena explicación .... –

0
var myarray = []; 
var myJSON = ""; 

for (var i = 0; i < 10; i++) { 

    var item = { 
     "value": i, 
     "label": i 
    }; 

    myarray.push(item); 
} 

myJSON = JSON.stringify({myarray: myarray}); 
+0

por favor, aprenda el código de formato de forma (hay un signo de interrogación en la esquina superior posterior del cuadro de entrada :-) – kleopatra

1
newObject = { 
"first": "John", 
"last": "Doe", 
"age": 39, 
"sex": "M", 
"salary": 70000, 
"registered": true, 
"interests": [ "Reading", "Mountain Biking", "Hacking" ] 
} 
Cuestiones relacionadas