Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: JSON добавляет лишний символ "\" два раза в каждую переменную.  (Прочитано 9524 раз)
0 Пользователей и 1 Гость смотрят эту тему.
edikreg
Интересующийся

ua
Offline Offline

« : 09-01-2012 16:49 » 

У Вас на сайте есть прекрасная статься посвященная запросам JSON

В ней идет речь такого плана:
Код:
\u0021

после json_encode() превратится в:

Код:
\\u0021

а после «лечения» станет такой:


Как решить проблему с добавлением \   ?
[{\"id\":\"1\",\"position\":2},{\"id\":\"3\",\"position\":3},{\"id\":\"5\",\"position\":4},{\"id\":\"7\",\"position\":5},{\"id\":\"4\",\"position\":1}]
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 09-01-2012 17:16 » 

а что по этому поводу говорят функции из статьи from_json() to_json?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
edikreg
Интересующийся

ua
Offline Offline

« Ответ #2 : 09-01-2012 17:22 » 

использую таким образом:
в javascript отправляю через Ajax JSON запрос в скрипт PHP
в javascript использую JSON.stringify(переменная);
в php использую json_decode($_POST['переменная'], true );

и что удивительно локально все работает верно(DENWER), на хостинге (на двух пробовал) добавляет \


from_json() to_json? - это ведь javascript функции?
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 09-01-2012 17:25 » 

Вы статью читали?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
edikreg
Интересующийся

ua
Offline Offline

« Ответ #4 : 09-01-2012 17:42 » 

да прочитал, прекрасная статья, но я новичок, и увы не могу понять как мне с ее помощью решить данную проблему Жаль
не подскажете?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 09-01-2012 20:12 » 

edikreg, статья о PHP, а не о JavaScript. Уточни вопрос.

На всякий случай: речь об этой статье?
PHP. Что такое JSON и как с ним бороться.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

"железокаменный метеорит" мог образоваться от расплавления металлических конструкций в результате например ядерного взрыва и стекания жидкого железа в какой нибудь щебень (c) Иванов С.
edikreg
Интересующийся

ua
Offline Offline

« Ответ #6 : 09-01-2012 20:57 » 

edikreg, статья о PHP, а не о JavaScript. Уточни вопрос.

На всякий случай: речь об этой статье?
PHP. Что такое JSON и как с ним бороться.

Да Вы указали статью абсолютно верно.
Вопрос заключается в JSON
уже второй день не могу понять в чем ошибка, я всегда сам ошибки находил, но Google в поисковый запрос не включает символ -    \

у меня в PHP скрипте не работает корректно json_decode($_POST['переменная'], true ); , или же передается запрос неверно.

вот код запроса:

Код: (Javascript)
$.ajax({
                        type: "POST",
                        url: "updateList-test.php",
                        data: "orderRows=" + JSON.stringify(orderJSON),
                        // Выводим то что вернул PHP

                        error: function (data, status, e){alert(e);},
                        success: function(theResponse){
                                                $("#response").html(theResponse);
                                                $("#response").slideDown('slow');
                                                slideout();
                                                }
                        });

в PHP получил и для теста вывожу переменную которую передал с JavaScript:

Код: (PHP)
$a = $_POST['orderRows'];
echo "<br/>a = ".$a;

на экране выводиться -

[{\"id\":\"1\",\"position\":2},{\"id\":\"3\",\"position\":3},{\"id\":\"5\",\"position\":4},{\"id\":\"7\",\"position\":5},{\"id\":\"4\",\"position\":1}]
а должно быть так - [{"id":"1","position":2},{"id":"3","position":3},{"id":"5","position":4},{"id":"7","position":5},{"id":"4","position":1}]


проблема только на сервере в интернете, на локалке все почему то корректно! шаманская ошибка!
я не просил бы у Вас помощи, уже просто не знаю что делать!( я далеко не нуб в PC, всегда находил решение проблем на форумах, а тут пришлось самому создавать тему
Выбрал именно Ваш форум, такой статьи (профессиональной) на просторах СНГ по JSON не нашел.  
« Последнее редактирование: 09-01-2012 21:28 от RXL » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 09-01-2012 21:31 » 

Нужно определить, кто навставлял слешей. Варианта два: PHP (согласно настройкам) или твоя программа (например, функцией addslashes). На этот случай полезно на сервере держать снифер.
Читаем мануал: magic_quote_gpc
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

"железокаменный метеорит" мог образоваться от расплавления металлических конструкций в результате например ядерного взрыва и стекания жидкого железа в какой нибудь щебень (c) Иванов С.
edikreg
Интересующийся

ua
Offline Offline

« Ответ #8 : 09-01-2012 22:05 » 

Да RXL, Вы абсолютно правы, я прочитал про magic_quote_gpc . У меня на хостинге он включен.

Проблему решилась очень просто :
$a = stripslashes($a); // функция удаляет экранирования

Спасибо Вам за помощь! Надеюсь и я кому то смогу помощь на этом форуме.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 10-01-2012 03:18 » new

Неверно! Завтра хостер выключит эту вредную фичу и твоя программа перестанет работать. Там же, в описании фичи есть ссылка на функцию, которая проверяет значение параметра.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

"железокаменный метеорит" мог образоваться от расплавления металлических конструкций в результате например ядерного взрыва и стекания жидкого железа в какой нибудь щебень (c) Иванов С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines