18 votos

Cómo JSON decodificar los elementos de un array en JavaScript?

Tengo un array de JavaScript que, entre otros, contiene una dirección URL. Si trato de poner la URL de la página (la matriz es en un proyecto que involucra a la comunidad de Yahoo! El API de google Maps) muestra la dirección URL como debe ser.

Pero si trato de hacer una redirección o simplemente hacer una "alerta" en el enlace de elemento de matriz que obtengo:

function(){return JSON.codificar(this);}

Tal y como yo lo veo esto es debido a que el navegador hace un JSON.codificar cuando se representa la página, por lo que el enlace se muestra en ACEPTAR. He intentado varios métodos para hacer redirect (que es lo que quiero hacer con el enlace) correctamente (incluyendo el uso de 'eval'), pero no hubo suerte.

Después de algunas sugerencias que me he quedado eval('(' + jsonObject + ')') , pero todavía se devuelve el mismo resultado.

Así que ¿cómo se hace esto ?

32voto

matija kancijan Puntos 667
var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );

Ver el jQuery API.

7voto

Supongamos que tenemos un array en PHP como $iniData con 5 campos. Si el uso de ajax -

echo json_encode($iniData);

En Javascript, utilice el siguiente :

<script type="text/javascript">
    $(document).ready(function(){
        $.ajax({
            type: "GET",
            url: "ajaxCalls.php",
            data: "dataType=ini",
            success: function(msg)
            {
                var x = eval('(' + msg + ')');
                $('#allowed').html(x.allowed);              // these are the fields which you can now easily access..
                $('#completed').html(x.completed);
                $('#running').html(x.running);
                $('#expired').html(x.expired);
                $('#balance').html(x.balance);
            }
        });
    });
</script>

4voto

Joel Anair Puntos 8561

Si usted recibe este texto en un mensaje de alerta:

function(){return JSON.encode(this);}

cuando se trate de alerta(myArray[i]), entonces hay un par de posibilidades:

  • myArray[i] es una función (lo más probable)
  • myArray[i] es la cadena literal "de la función(){return JSON.codificar(this);}"
  • myArray[i] tiene una .método toString() que devuelve esa función o esa cadena. Esta es la menos probable de las tres.

La forma más sencilla de decirle sería comprobar typeof(myArray[i]).

3voto

Kon Puntos 16125
eval('(' + jsonObject + ')')

2voto

Lou Franco Puntos 48823

La decodificación JSON en JavaScript es simplemente un eval() si confía en la cadena o el más código seguro de que usted puede encontrar en http://json.org si no.

Luego tendrá un JavaScript discbased que puede atravesar los datos que necesita.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: