script recorrer mostrar leer externo ejemplos ejemplo datos create crear con javascript json script-tag

recorrer - ¿Cómo puedo leer un JSON en la etiqueta de script de JavaScript?



recorrer json javascript (4)

Tengo una página generada dinámicamente en la que quiero usar un JavaScript estático y pasarle una cadena JSON como parámetro. He visto este enfoque usado por Google (vea el Botón +1 de Google: ¿Cómo lo hacen? ).

Pero, ¿cómo debería leer la cadena JSON desde JavaScript?

<html> <head> <script src="jquery-1.6.2.min.js"></script> <script src="myscript.js">{"org": 10, "items":["one","two"]}</script> </head> <body> Hello </body> </html>

En este JavaScript me gustaría usar el argumento JSON {"org": 10, "items":["one","two"]} del documento HTML. No sé si es mejor hacerlo con jQuery o sin él.

$(function() { // read JSON alert("the json is:") })


Para leer JSON en <script id="myJSON"> use

var manifest= document.getElementById(''myJSON'').innerHTML; //sets manifest to the text in #myJSON manifest= JSON.parse(manifest) //Converts text into JSON

También puede usar métodos para apuntar a la secuencia de comandos como document.scripts[0]

//var manifest= JSON.parse(document.getElementById(''myJSON'').innerHTML); /*Shortend of 2&3*/ var manifest= document.getElementById(''myJSON'').innerHTML; //Gets text in #myJSON manifest= JSON.parse(manifest) //Converts it into JSON document.getElementById(''test'').innerHTML= manifest.name+ ''<br/>''+ manifest.otherOptions; //Displays it console.log(''manifest'') console.log(manifest);

<head> <script type="application/json" id="myJSON"> {"name":"Web Starter Kit", "otherOptions":"directly here"} </script> </head> <body> <p id="test"></p> </body>


Terminé con este código JavaScript para ser independiente de jQuery.

var json = document.getElementsByTagName(''script''); var myObject = JSON.parse(json[json.length-1].textContent);


Yo cambiaría la declaración de script a esto:

<script id="data" type="application/json">{"org": 10, "items":["one","two"]}</script>

Tipo de nota y campos de identificación. Después de esto

var data = JSON.parse(document.getElementById(''data'').innerHTML);

Funcionará bien en todos los navegadores.

El type="application/json" es necesario para evitar que el navegador lo analice mientras se carga.


JSON.parse($(''script[src="mysript.js"]'').html());

o inventar algún otro método para identificar el script.

Tal vez en lugar de .html() pueda necesitar .text() . No es seguro. Pruébalos ambos.