Перевести текст в объект
У меня есть скрипт php:
<?php echo '{"one":"one_text","two":"two_text"}'; ?> И есть объект XMLHttpRequest() Данные из него получаю через responseText Как эти данные(текст) преобразовать в объект? |
json
|
function makeRequest() { httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = function () { getProduct(httpRequest); }; url = 'test.php'; httpRequest.open('POST', url, true); httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); httpRequest.send(null); } function getProduct(httpRequest) { var jsonText = httpRequest.responseText; jsonText = jsonText.json; document.write(jsonText.one); } Как? |
var jsonText = JSON.parse( httpRequest.responseText ); |
Цитата:
|
И http://json.org/ для старых браузеров.
|
Не хочется создавать новый топик.
Как можно получить доступ к данным, которые пришли, вне функции инициализации XMLHttpRequest |
httpRequest.onreadystatechange = function() { if (httpRequest.readyState === 4 && httpRequest.status === 200) getProduct(httpRequest.responseText); }; |
Не, ну это понятно.
Но мне нужно будет использовать этот ответ не только в каллбэк функции. А по длине всей программы. Можно конечно в калбак функцию поместить всю оставшуюся программу, но может есть более лучшее решение |
а как ты будешь использовать ответ в скрипте, если запрос асинхронный?
добавить к глобали этот текст *window.responseText = htmlRequest.responseText. |
Можно использовать синхронный запрос, но это не лучшее решение.
|
Вообще хочу примерно так:
При загрузке страницы по аяксу строю на странице интернет-магазина перечень товаров. Через аякс приходит json и из него как раз и берутся все товары. По умолчанию они будут приходить упорядоченными по дате добавления, вверху будут ссылки на изменения порядка(по цене, по популярности). У товара есть поля для ввода количества, прямо рядом с ним(не в корзине). После ввода кол-ва пользователь нажимает кнопочку добавить, и товар добавляется в сайтбар слева(список заказов). Одно но, при изменении кол-ва должна одновременно меняться и цена. Вот для доступа к исходной цене мне и нужен доступ к json массиву. |
Часовой пояс GMT +3, время: 02:26. |