Как проанализировать и вывести объект JSON с динамическими значениями? - PullRequest
1 голос
/ 28 декабря 2010

Мне нужно вывести объект JSON, который выглядит следующим образом:

{
    "dynamicvaluenumberone":3,
    "dynamicvaluenumbertwo":7
}

В чем-то похожем на: dynamicvaluenumberone (3), dynamicvaluenumbertwo(7)

Я нашел несколько статей со статическими значениями или анализом JSON с помощью jQuery. Я не хочу использовать какие-либо рамки для выполнения этой простой задачи.

Ответы [ 2 ]

4 голосов
/ 28 декабря 2010

Вы пробовали JSON.parse?

var json = '{"dynamicvaluenumberone":3, "dynamicvaluenumbertwo":7}';
var obj = JSON.parse(json);

Для доступа к динамическим клавишам вы можете циклически переключать клавиши, используя for...in:

for(var i in obj) {
    console.log(i + " (" + obj[i] + ")");
}

Обновление: В зависимости от браузеров, которые необходимо поддерживать, библиотека JSON также доступна здесь: http://www.json.org/js.html

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

Ссылочный сайт JSON можно найти здесь:

http://json.org/

(он также связан со статьей Mozilla, упомянутой в ответе Феликса).

СсылкаНезависимый от браузера JSON-анализатор JavaScript можно найти здесь (по ссылке с корневого сайта json.org на языке «JavaScript»):

https://github.com/douglascrockford/JSON-js

(вам нужен именно json2.js)).Хорошая особенность эталонной реализации Дугласа Крокфорда заключается в том, что он будет использовать встроенный в браузер JSON-анализатор, если он доступен (быстрый, эффективный - доступен на IE8 + в стандартном режиме, последние версии Opera, Chrome, Safari, FireFox - вот о чем говорит ссылка Феликса), толькоВозвращаясь к реализации JavaScript (медленно) в браузерах, где собственный синтаксический анализатор JSON недоступен.

Я уже несколько лет использую json2.js и настоятельно рекомендую его: -).

Простой примериллюстрирующий, как его использовать (сохраните, например, «test.html» и откройте в любом браузере):

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>JSON parser test</title>
    </head>
    <body>
        <script type="text/javascript" src="http://github.com/douglascrockford/JSON-js/raw/master/json2.js"></script>
        <script type="text/javascript">

            var str = "{ \"dynamicvaluenumberone\":3, \"dynamicvaluenumbertwo\":7, \"dynamicvaluenumberthree\":\"hello\" }";
            var obj = JSON.parse(str);

            alert(
                "Parsed object type: " + typeof obj + "\n" +
                "Value 1: " + obj.dynamicvaluenumberone + " (" + typeof obj.dynamicvaluenumberone + ")\n" +
                "Value 2: " + obj.dynamicvaluenumbertwo + " (" + typeof obj.dynamicvaluenumbertwo + ")\n" +
                "Value 3: " + obj.dynamicvaluenumberthree + " (" + typeof obj.dynamicvaluenumberthree + ")");

        </script>
    </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...