извлекать данные JSON с помощью jQuery и проверять их - PullRequest
1 голос
/ 22 июня 2011

В последнее время я использую jQuery, но никогда не использовал JSON с ним.

Теперь я готовлю JSON с использованием PHP на стороне сервера. Мне нужно получить эти данные JSON с использованием JavaScript (предпочтительный способ с использованием JQuery)

Я могу получить данные JSON, перейдя по аналогичному URL, указанному ниже

http://www.example.com/getjson.php?catid=1        
                    OR
http://www.example.com/getjson.php?catid=15       

На моем сервере есть имя файла "getjson.php", которое будет принимать аргумент 'get' как catid (обозначает идентификатор категории), извлекает данные из таблицы категорий и выводит данные в формате JSON.

Теперь мне нужен код JS (если код будет в jQuery, это будет дополнительным преимуществом, так как мне очень нужен код в jQuery), который может извлекать данные из вышеупомянутого URL-адреса и анализировать его (который я считаю декодированием JSON, верно?).

Еще одна вещь, после выборки данных, мне нужно проверить, находятся ли полученные данные в формате JSON или нет (это действительно важно)

В таблице категорий есть следующие поля, которые выводятся в формате JSON.

ID, Name, Description, ImageURL, Active, Deleted

Пожалуйста, помогите мне. Спасибо.

Ответы [ 5 ]

0 голосов
/ 22 июня 2011

$.getJSON должны сделать свое дело.

$.getJSON("http://www.example.com/getjson.php", {catid:1}, function(data){
    console.log( data ); // display the JSON data in the web console
});

Поскольку $.getJSON возвращает объект jqXHR , вы можете прикрепить сообщение об ошибке следующим образом:

$.getJSON("http://www.example.com/getjson.php", {catid:1}, function(data){
    console.log( data ); // display the JSON *data* in the web console
    // you can then access the params via dot syntax like this:
    var id = data.ID,
        name = data.Name,
        description = data.Description,
        imageURL = data.ImageURL,
        active = data.Active,
        deleted = data.Deleted;
}).error(function(){
     alert("Error!");
});

Интересный факт: всякий раз, когда вы используетеjQuery для AJAX добавляет в запрос заголовок X-Requested-With со значением «XMLHttpRequest».Вы можете проверить этот заголовок с помощью своего PHP-кода на стороне сервера и решить, следует ли отображать HTML-страницу или отправлять взамен соответствующие AJAX-данные.

Это полезно, когда вы связываетесь с событием click в ссылке,Но вы хотите, чтобы ссылка все еще работала, когда кто-то переходит непосредственно к href.

<a href="http://www.example.com/getjson.php?catid=1">Category 1</a>    

JS:

$("a").click(function(e){
    // Keep the browser from navigating to the link's href.
    e.preventDefault();

    // Because we are using one of jQuery's AJAX methods we can get data back from 
    // our server that is different than the data we would get if we navigated to
    // the link directly.
    $.getJSON(this.href, /* optional data param */ function(data){
        console.log( data ); // display the JSON data in the web console
    });
});
0 голосов
/ 22 июня 2011

Для получения JSON вы можете использовать следующее:

$.getJSON('http://www.example.com/getjson.php?catid=1', function(data) { // success statement here });

Затем вы можете использовать jQuery.parseJSON() для проверки результата.Подробнее см. http://api.jquery.com/jQuery.parseJSON/.

0 голосов
/ 22 июня 2011
$.ajax({
    dataType: 'json',
    type: 'GET',
    url: 'http://www.example.com/getjson.php?catid=15',
    success: function(data) {
        // data be a javascript object that contains your already decoded json data
    }
});
0 голосов
/ 22 июня 2011

Использовать $ .getJSON (url, data, callback);

Получает данные по указанному URL и проверяет, является ли он действительным в формате JSON.

$.getJSON(
    'http://www.example.com/getjson.php?catid=' + $('#valueContainer').val(),
     function (data) {
         // do stuff here
     });
0 голосов
/ 22 июня 2011

Вы можете использовать функцию JQuery get для запроса страницы вашего сервера и передачи соответствующих параметров.

Затем для разбора вашего ответа вы можете использовать JSON.parse(), если он возвращает / выдает ошибку, у вас нет действительного JSON.

ПРИМЕЧАНИЕ как только ваш ответ будет выполнен через JSON.parse, он больше не будет строкой json, это будет объект JavaScript.

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