Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2015, 19:04
Аватар для viktorina
Профессор
Отправить личное сообщение для viktorina Посмотреть профиль Найти все сообщения от viktorina
 
Регистрация: 04.01.2013
Сообщений: 173

JSON и его переопределение.
Мой код используется на нескольких сайтах. На некоторых из них используется Ext и в нём JSON переопределён.
В моём коде вызывается JSON.stringify и происходит ошибка.
Я проверил и увидел JSON[encode/decode] вместо stringify/parse
У меня есть решение проверять на "если есть stringify", то ......

Кто либо поимел в своей жизни подобную проблему? Как красиво оформить?
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2015, 19:43
Профессор
Отправить личное сообщение для siber-biber Посмотреть профиль Найти все сообщения от siber-biber
 
Регистрация: 07.08.2013
Сообщений: 214

Вообще Ext.JSON, а не JSON. И я не думаю что сам ExtJS нативные объекты переписывает. Какая версия extjs?

А вообще может у вас гдето в коде затесался with ..типа такого:
with (Ext) {
   // вот здесь JSON будет ссылаться на Ext.JSON
}
Ответить с цитированием
  #3 (permalink)  
Старый 06.06.2015, 19:51
Аватар для viktorina
Профессор
Отправить личное сообщение для viktorina Посмотреть профиль Найти все сообщения от viktorina
 
Регистрация: 04.01.2013
Сообщений: 173

Дело в том, что перед ошибкой я делаю проверку и вижу, что JSON переопределён, а после выполнения всех скриптов JSON стандартный.
window.JSON проверяю в контексте window
if (!JSON.stringify) {
   if (JSON.encode) {
        JSON.stringify = JSON.encode;
    }
}

Так очень страшно?
Ответить с цитированием
  #4 (permalink)  
Старый 07.06.2015, 07:55
Профессор
Отправить личное сообщение для siber-biber Посмотреть профиль Найти все сообщения от siber-biber
 
Регистрация: 07.08.2013
Сообщений: 214

Ну как хак то это пойдет если всё работает. Но правильнее конечно былоб место найти где переопределяется ..хотя и более трудозатратно.

Я еще забыл спросить, какой браузер?
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2015, 07:49
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

В index.html вставьте где-нибудь повыше:

Код:
<script type="text/javascript">
    var Ext = Ext || {};
    Ext.USE_NATIVE_JSON = true;
</script>
Должно помочь.
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2015, 09:50
Аватар для viktorina
Профессор
Отправить личное сообщение для viktorina Посмотреть профиль Найти все сообщения от viktorina
 
Регистрация: 04.01.2013
Сообщений: 173

Сообщение от siber-biber Посмотреть сообщение
Ну как хак то это пойдет если всё работает. Но правильнее конечно былоб место найти где переопределяется ..хотя и более трудозатратно.

Я еще забыл спросить, какой браузер?
Хром. В опере работает.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как достать данные из JSON массива? Dimaz jQuery 15 27.11.2012 21:58
передача объекта в json assd18 AJAX и COMET 2 17.09.2012 12:29
Повернуть изображение после его загрузки (jquery) art_maestro jQuery 0 13.09.2012 21:50
обратный слэш в JSON nikolaich Серверные языки и технологии 1 18.01.2011 16:20
не работает JSON в JQuery 1.4.1 mcpro jQuery 7 22.03.2010 17:56