簡體   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