декодировать JSON как HTML - PullRequest
       2

декодировать JSON как HTML

0 голосов
/ 14 февраля 2011

Итак, я создаю веб-приложение, и у меня есть запрос ajax, который пингует базу данных (или кеш базы данных) и возвращает эхо к большой вещи из json. Я совершенно новичок в json, и когда php извлекает данные из базы данных, я повторяю json_encode ($ databaseResults), тогда он появляется на моей html-странице в виде длинной строки. У меня вопрос, как мне преобразовать его и вытащить нужные фрагменты в хороший формат?

Спасибо!

Результат Json, который был на странице, выглядит так:

"[{\" currentcall \ ": \" 1 \ "\ "timecalled \": \ "15:30 \", \ "etaTime \": \ "15:35 \", \" DepartmentID \ ": \" 1 \ ", \" memberID \ ": \" 1 \ ", \" callinnum \ ": \" 1 \ ", \" location \ ": \" Пожарный дом \ ", \" biled \ " : \ "N \", \ "дата \": \ "2 \\ / \\ 12/11 \", \ "Имя \": \ "Фил \", \ "LastName \": \ "ASDF \" \ "электронной почты \": \ "pasdf@gmail.com \", \ "HomePhone \": \ "+ 19111111111 \", \ "телефон \": \ "+ 11234567891 \", \ "cellphone2 \": нулевой , \ "workphone \": null, \ "phonenumber5 \": null, \ "phonenumber6 \": null, \ "streetAddress \": \ "10 asdfnt Dr \", \ "city \": \ "\", \ "имя пользователя \": \ "pgsdfg \", \ "пароль \": \ "0623ab6b6b7dsasd3834799fbf2a08529d \", \ "админ \": \ "У \", \ "квалификация \": \ "Интерьер \", \» Оценка \ ": нулевой, \" РСП \ ": нулевой, \" ЕМТ \ ": нулевой, \" обучение \ ": нулевой, \" DateJoined \ ": нулевой, \" dateactive \ ": нулевой, \" состояние \ ": \" DE \», \ "почтовый \": \ "51264 \", \ "до \": \ "НЕТ \", \ "defaultETA \": \ "7 \", \ "аппарат \": \ "asdKE-286 \"}] "

Может быть несколько результатов ... это только один результат

EDIT:

По сути, я пытаюсь передать несколько строк в массиве в html-файл, извлечь только те данные, которые мне нужны, и отформатировать их. Я не знаю, является ли JSON лучшим способом сделать это или нет, только одно решение, которое я придумал. Так что, если у кого-то есть лучшее решение, это было бы замечательно.

Edit2: Это jquery, который делает запрос, у php просто есть echo json_encode ($ DBResults);

function getResponder(){
    var responders = $.ajax({
            type : "POST",
            url: "/index.php/callresponse/get_responders",
            success: function(html){
                $("#ajaxDiv").html(html);   
            }
    });

setTimeout("getResponder()", 10000);
}

Ответы [ 4 ]

3 голосов
/ 14 февраля 2011

Поскольку вы пометили это как jquery, я предполагаю, что вы используете jQuery. Если вы собираетесь получить только одну строку, вы можете пропустить часть json и использовать jQuery .load (), например, $('#result').load('ajax/test.php');, который загрузит содержимое из ajax / test.php в # result

Однако, если вы хотите использовать json, вы можете взглянуть на getJSON в документации jQuery . Вы также можете использовать функцию jQuery parseJSON , которая будет возвращать json объект javascript, содержащий jsonData.

Вот пример того, как вы можете использовать parseJSON

var object = $.praseJSON(jsonString); //jsonString is the string containing your actual json data
alert(object.location) //Will alert "Fire House" with the given json string

Вот пример того, как вы можете использовать getJSON таким же образом

$.getJSON('ajax/test.php', function(object) {
  alert(object.location); //Will alert "Fire House" with the given json string
});

Если вы также хотите передать параметры, вы можете сделать это следующим образом

$.getJSON('ajax/test.php', 
    { 
        Param1 : "Value1", 
        Param2 : "value2" 
    },
    function(object) {
        alert(object.location);  //Will alert "Fire House" with the given json string
    }
);

Если вы пытаетесь отправить json из javascript на php, вы можете использовать

$jsonArray = jsonDecode($_GET['key']); 

Конечно, если вы используете post, вместо этого вы напишите $ _POST.

1 голос
/ 14 февраля 2011

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

Не видя подробностей, я могу вам сказать, что вам нужно использовать JSONобъект для разбора текста.Подробнее здесь: http://www.json.org

var obj = JSON.parse(ajaxResponseText);
0 голосов
/ 25 сентября 2018

Обычно для отображения JSON-ответа в элементе html после jquery ( например ) по веб-запросу, попробуйте следующее:

<code>$("#box-content-selector").append(
    "<pre>"+
    JSON.stringify(JSON.parse(data), null, 4)+
    "
")
0 голосов
/ 14 февраля 2011

Вы должны использовать php функцию json_decode , которая даст вам объект или массив со всеми свойствами.

Затем вы должны рекурсивно пройти по этому объекту и добавить содержимое свойств в строку, которая должна быть вашим окончательным HTML.

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