Использование JSON, возвращенного с серверной стороны на клиентскую - PullRequest
0 голосов
/ 16 мая 2011

ОБНОВЛЕНИЕ 3:

Следующее, похоже, не имеет никакого значения, делает то же самое, что и скрипт в обновлении 2:

var $obj = jQuery.parseJSON(results);

$.each($obj, function(key, value) { 
    alert(key + " - " + value);
});

ОБНОВЛЕНИЕ 2:

$.each(jQuery.parseJSON(results), function(key, value) { 
    alert(key + " - " + value);
});

Приведенный выше скрипт теперь возвращает точное количество предупреждений, но не правильные данные. это дает мне это:

0 - [object, Object]
1 - [object, Object]
2 - [object, Object]

ОБНОВЛЕНИЕ 1:

get_json.aspx в настоящее время возвращает это:

[{"key":1,"value":"Default"},{"key":2,"value":"Reports"},{"key":3,"value":"Other"}]

Текущий скрипт теперь выглядит так:

$.ajax({
    url: 'get_json.aspx',
    type: 'GET',
    error: function(xhr, status, error) {
        alert('Error: ' + status + '\nError Text: ' + error + '\nResponse Text: ' + xhr.responseText);
    },
    success: function(results) {
        $.each(results, function(key, value) { 
            alert(key + " - " + value);
        });
    }
});

Но когда я захожу на эту веб-страницу, она просто дает мне бесконечный запас предупреждений javascript, т.е.

    0 - undefined
    1 - undefined
    2 - undefined
    3 - undefined
...
    75 - undefined
    76 - undefined
    77 - undefined
    78 - undefined

ОРИГИНАЛЬНЫЙ ВОПРОС:

Если я верну ключ: значение парного JSON с сервера. Как мне использовать этот JSON?

Я пытаюсь использовать JSON в успешной части ajax / jquery ниже:

$.ajax({
    url: 'get_json.aspx',
    type: 'GET',
    error: function(xhr, status, error) {
        alert('Error: ' + status + '\nError Text: ' + error + '\nResponse Text: ' + xhr.responseText);
    },
    success: function(results) {
    /*
    using the key:value pair json return, if 3 pairs are return, somehow generate the following
    where key = the value of the querystring in the url, i.e. tab = 1,2,3
    and value = Default, Reports, Other
        $("#tabs").tabs("add","tabs.aspx?tab=1","Default")
        $("#tabs").tabs("add","tabs.aspx?tab=2","Reports")
        $("#tabs").tabs("add","tabs.aspx?tab=3","Other")
    */
    }
});

Ответы [ 3 ]

2 голосов
/ 16 мая 2011

Возможно, вы захотите что-то вроде этого:

$ .each (результаты, функция (ключ, значение) { $ ("# tabs"). tabs ("add", "tabs.aspx? tab =" + key, value) });

$.each(results, function(i) { 
    $("#tabs").tabs("add","tabs.aspx?tab=" + results[i].key, results[i].value)
});

Если тип содержимого ответа «text / json», вам не нужно использовать parseJson (), потому что JQuery сделает это за вас.

1 голос
/ 16 мая 2011

Взгляните на http://www.json.org/js.html

0 голосов
/ 16 мая 2011

Когда вы возвращаете правильно сформированный JSON (Вы можете проверить, что он правильно сформирован здесь Json Parser Online ) Вы можете использовать функцию eval (), предоставляемую javascript. Т.е..

var myJSONObject = {"bindings": [
        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
        {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
        {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
    ]
};

Чтобы использовать возвращенную текстовую строку ... сделайте следующее:

var myObject = eval('(' + myJSONtext + ')');

Если вы настаиваете на использовании параметров разбора jquery, используйте:

var obj = jQuery.parseJSON( myJsontext ); 

Эта информация доступна на JSON в JavaScript

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