Tengo un array que contiene 3 elementos

var a = [];
  a["username"]=$scope.username;
  a["phoneNo"]=$scope.phoneNo;
  a["altPhoneNo"]=$scope.altPhoneNo;

Ahora, quiero enviar los datos al servidor en formato JSON. Por lo tanto, he utilizado

    var aa = JSON.stringify(a);
    console.log("aa = "+aa);

Pero la consola muestra la matriz vacía

aa = [] 

¿Cómo puedo convertir de esta matriz en JSON?

  • A pesar de que la consola muestra [], a no contienen todos los elementos. Acaba de cambiar var a = []; a var a = {};
  • Matrices JSON no admiten la llamada claves; sólo contados índices. Así que no pueden ser incluidos en la cadena. Sin embargo, puede utilizar llamada claves con Objects — var a = {};.
InformationsquelleAutor Aniket Sinha | 2014-03-05

1 Comentario

  1. 9

    Esa no es la forma correcta de agregar elementos a un array, vas a agregar propiedades en su lugar.
    Si usted hizo console.log(a.username); quieres ver su $scope.username valor.

    Usted podría hacer

    var a = [];
    a.push({"username": $scope.username});
    a.push({"phoneNo": $scope.phoneNo});
    a.push({"altPhoneNo": $scope.altPhoneNo});

    Pero se parece más a lo que estamos tratando de hacer es

    var a = {};
    a["username"] = $scope.username;
    a["phoneNo"] = $scope.phoneNo;
    a["altPhoneNo"] = $scope.altPhoneNo;

    Que es, usted quiere que su a a ser un objeto si vas a añadir propiedades.
    Y que estaría mejor escrito como

    var a = {};
    a.username = $scope.username;
    a.phoneNo = $scope.phoneNo;
    a.altPhoneNo = $scope.altPhoneNo;

Dejar respuesta

Please enter your comment!
Please enter your name here