繁体   English   中英

如何在 JavaScript 中解析 JSON 以取值

[英]How to parse JSON in JavaScript to take value

我真的坚持解析 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

使用JSON.parse (从http://json.org重定向),或者MDN

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

像:

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

jquery 也有一些功能jquery.parseJSON

像:

   var foobar = $.parseJSON(yourjson);

Jquery 更好,因为它会做一些检查并表现得更好。

首先,下载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 字符串,它说它是有效的,所以你应该没有问题。

你可能在 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 的浏览器的后备。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM