如何在JavaScript中解析JSON以获取值

我真的很难解析一个JSON字符串并接受它的值。 我得到了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} 

如何解析这个并将结果用于JavaScript中的进一步处理

你应该使用jQuery.parseJSON 。 如果可用,它将使用本机JSON ,并且在完整性检查后仅在必要时使用eval

首先,下载jQuery 。

其次,将其包含在您的页面中。

第三,如果您的变量是这样的:

 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}'; 

然后,

 var parsedJson = jQuery.parseJSON(jsonString); 

将为您提供所需的已解析对象,可以进行操作。

我在JSONLint上尝试了你的JSON字符串,它说它有效,所以你应该没有问题。

Json已经是一些javascript了。 所以解析只是使用eval

喜欢:

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

jquery还有一些jquery.parseJSON函数

喜欢:

  var foobar = $.parseJSON(yourjson); 

Jquery更好,因为它会进行一些检查并且性能更好。

使用JSON.parse

你可能在som String变量中得到了你的json

 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}'; 

现在您可以通过jQuery轻松解析它(您也可以通过本机javaScript eval解析它,但是存在一些安全问题,格式错误的输入字符串fe,用jQuery覆盖而不是在eval中)

 result = jQuery.parseJSON(json); 

现在您可以轻松访问您的json对象

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

你不需要jQuery,在ECMAScript5中 JSON对象将被原生支持,并且使用它可以使用JSON.parse方法将字符串解析为JS对象。 IE9将支持ES5和FF,Chrome已经支持。

目前您可以使用json2.js(您可以在此处查看源代码)作为本机不支持JSON的浏览器的后备。