Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSON не парсится, хотя и валидный 
V
    Опции темы
Larrr
Дата 26.5.2009, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 29.1.2006
Где: Прага

Репутация: 1
Всего: 2



Привет,

у меня есть данные в формате JSON . Выглядят они так:

Код

{
    "version": "20090518114527",
    "category_levels": [
        {
            "id": "0.0",
            "next_level_nodes": [
                {
                    "id": "0.0.0",
                    "name": {
                        "text": "category:\"bar\"",
                        "display_text": "bar" 
                    },
                    "leaf": true 
                },
                {
                    "id": "0.0.1",
                    "name": {
                        "text": "category:\"čajovna\"",
                        "display_text": "čajovna" 
                    },
                    "leaf": true 
                } 
            ] 
        } 
    ]
}


Валидатор утверждает, что JSON валидный.  При этом когда я пытаюсь его распарсить с помощью eval в js - он не работает. 

Код


try {
        var jsonvar = eval('(' + jsontext + ')');
    //JSON.parse(jsontext)
        alert(jsonvar.version);
    }
    catch(err) {
        alert("invalid Jason");
    }




С другой стороны, если убрать все \", то начинает работать нормально. Проблема в том, что данные формат мне дан свыше и изменить его (те убрать слэши) я не могу. Можно ли его заставить работать так?
PM MAIL WWW ICQ   Вверх
bars80080
Дата 26.5.2009, 20:50 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(Larrr @  26.5.2009,  20:34 Найти цитируемый пост)
Проблема в том, что данные формат мне дан свыше и изменить его (те убрать слэши) я не могу.

формат-то дан, а почему слэши нельзя убрать? прямо здесь, перед вставкой в eval?
заменить \" на ' к примеру и всё
PM MAIL WWW   Вверх
youri
Дата 27.5.2009, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 2
Всего: 16



просто вот такой json: ["\""], в виде javascript-строки должен выглядеть так: '["\\""]'

Это сообщение отредактировал(а) youri - 27.5.2009, 04:23
PM   Вверх
Larrr
Дата 27.5.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 29.1.2006
Где: Прага

Репутация: 1
Всего: 2



Цитата

формат-то дан, а почему слэши нельзя убрать? прямо здесь, перед вставкой в eval?
заменить \" на ' к примеру и всё 


Можно, но есть такой момент. Мне надо убрать только некоторые кавычки - те, которые идут после категорий. Некоторые кавычки должны остаться (для сохранения валидности). 

JS replace интерпретирует \" как кавычку ", то есть получается не "category:\"bar\"" , скажем, а "category:"bar"" и если прогонять его в replace, то символа \ оно не находит . А как его убедить убирать только внутрение, но не внешние кавычки - я не очень представляю. Буду очень благодарна за совет.
PM MAIL WWW ICQ   Вверх
youri
Дата 28.5.2009, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 2
Всего: 16



а как этот json попадает в jsontext?
PM   Вверх
Larrr
Дата 28.5.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 29.1.2006
Где: Прага

Репутация: 1
Всего: 2



Разобралась.

JSON приходит с удаленного сервера. Причем в строке с этого сервера слэши остаются. Когда же я ту же строку задавала вручную в коде - слэши регекспом не находились.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0755 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.