Как разобрать JSON в JavaScript, чтобы получить значение - PullRequest
1 голос
/ 15 декабря 2010

Я действительно застрял в анализе строки 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

Ответы [ 6 ]

3 голосов
/ 15 декабря 2010

Вы должны использовать jQuery.parseJSON.Он будет использовать собственный JSON , если он доступен, и использовать eval только при необходимости, после проверки работоспособности.

2 голосов
/ 15 декабря 2010

Сначала скачайте 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);

даст вам нужный разобранный объект, который готов к манипулированию.

Я опробовал вашу строку JSON на JSONLint , и она говорит, что она действительна, поэтому у вас не должно быть проблем с ней.

1 голос
/ 15 декабря 2010

Json - это уже какой-то javascript.поэтому синтаксический анализ просто использует eval

как:

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

Также jquery имеет некоторую функцию для него jquery.parseJSON

как:1012 *

   var foobar = $.parseJSON(yourjson);

Jquery лучше, потому что он будет делать некоторые проверки и работать лучше.

1 голос
/ 15 декабря 2010

использовать JSON.parse

0 голосов
/ 15 декабря 2010

Вам не нужен jQuery, в ECMAScript5 Объект JSON будет поддерживаться изначально, и с его помощью вы можете использовать метод JSON.parse для анализа строки в объекте JS. IE9 будет поддерживать ES5, а FF и Chrome уже поддерживают.

На данный момент вы можете использовать json2.js (вы можете посмотреть исходный код здесь ) как запасной вариант для браузеров, которые изначально не поддерживают JSON.

0 голосов
/ 15 декабря 2010

вы, вероятно, получили свою строковую переменную json in som

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...