Cómo analizar JSON en JavaScript para tomar valor

Estoy realmente atascado en el análisis de una cadena JSON y tomo sus valores. Tengo la cadena JSON como

{"user":{"id":"1","firstname":"Freelogin","created":"0000-00-00 00:00:00","lastname":"Administrator","email":"fred@websecurify.com", "usergroup_id":"1","status":"1","ip_enable":"N","priv":"0","expire":""},"data":{ "1":{"5":{"last_update":"2010-12-13 16:16:16","status":"0"},"3":{"last_update":"2010-12-13 16:41:48","status":"1"}},"2":{"6":{"last_update":"2010-12-13 16:41:48","status":"1"}}},"server_array":[{"id":"1","name":"anes.yyy.net"},{ "id":"2","name":"neseema.xxx.net"}],"service_array":[{"id":"5","name":"POP3"}, {"id":"6","name":"Cpanel"},{"id":"3","name":"SMTP"}],"sort_by":"servername", "sort_order":"ASC","pagelinks":"","totrows":"2","offset":"0","limitvalue":"10", "rows_monitor":2,"current":"monitor","uri":false} 

Cómo analizar esto y tomar los resultados para su posterior procesamiento en JavaScript

Debes usar jQuery.parseJSON . Utilizará JSON nativo si está disponible, y solo utilizará eval si es necesario, después de una comprobación de validez.

Primero, descarga jQuery .

En segundo lugar, incluirlo en su página.

Tercero, si tu variable es esta:

 var jsonString = '{"user":{"id":"1","firstname":"Freelogin","created":"0000-00-00 00:00:00","lastname":"Administrator","email":"fred@websecurify.com", "usergroup_id":"1","status":"1","ip_enable":"N","priv":"0","expire":""},"data":{ "1":{"5":{"last_update":"2010-12-13 16:16:16","status":"0"},"3":{"last_update":"2010-12-13 16:41:48","status":"1"}},"2":{"6":{"last_update":"2010-12-13 16:41:48","status":"1"}}},"server_array":[{"id":"1","name":"anes.yyy.net"},{ "id":"2","name":"neseema.xxx.net"}],"service_array":[{"id":"5","name":"POP3"}, {"id":"6","name":"Cpanel"},{"id":"3","name":"SMTP"}],"sort_by":"servername", "sort_order":"ASC","pagelinks":"","totrows":"2","offset":"0","limitvalue":"10", "rows_monitor":2,"current":"monitor","uri":false}'; 

entonces,

 var parsedJson = jQuery.parseJSON(jsonString); 

le dará el objeto analizado deseado que está listo para la manipulación.

Probé su cadena JSON en JSONLint y dice que es válida, por lo que no debería tener problemas con ella.

Json ya tiene algunos javascript. así que el análisis es solo usando eval

me gusta:

  var foobar = eval(yourjson); alert(foobar.user); 

También jquery tiene alguna función para ello jquery.parseJSON

me gusta:

  var foobar = $.parseJSON(yourjson); 

Jquery es mejor porque haría algunas verificaciones y se desempeñaría mejor.

usar JSON.parse

probablemente tienes tu json en alguna variable de cadena

 var json = '{"user":{"id":"1","firstname":"Freelogin","created":"0000-00-00 00:00:00","lastname":"Administrator","email":"fred@websecurify.com", "usergroup_id":"1","status":"1","ip_enable":"N","priv":"0","expire":""},"data":{ "1":{"5":{"last_update":"2010-12-13 16:16:16","status":"0"},"3":{"last_update":"2010-12-13 16:41:48","status":"1"}},"2":{"6":{"last_update":"2010-12-13 16:41:48","status":"1"}}},"server_array":[{"id":"1","name":"anes.yyy.net"},{ "id":"2","name":"neseema.xxx.net"}],"service_array":[{"id":"5","name":"POP3"}, {"id":"6","name":"Cpanel"},{"id":"3","name":"SMTP"}],"sort_by":"servername", "sort_order":"ASC","pagelinks":"","totrows":"2","offset":"0","limitvalue":"10", "rows_monitor":2,"current":"monitor","uri":false}'; 

ahora puede analizarlo fácilmente a través de jQuery (también puede analizarlo a través de eval javaScript nativo, pero hay algunos problemas de seguridad, cadena de entrada fe mal formados, que están cubiertos con jQuery y no en eval)

 result = jQuery.parseJSON(json); 

Ahora puedes acceder fácilmente a tu objeto json

 alert('Hello user, your name is ' + json.user.firstname); 

No necesita jQuery, en ECMAScript5 el objeto JSON se admitirá de forma nativa y con él puede usar el método JSON.parse para analizar una cadena en un objeto JS. IE9 será compatible con ES5 y FF y Chrome ya lo hacen.

Por el momento, puede usar json2.js (puede consultar la fuente aquí ) como respaldo para los navegadores que no admiten JSON de forma nativa.