#php #jquery #json
#php #jquery #json
Вопрос:
Я использую JSON для переключения между PHP и Javascript / Jquery… и по какой-то причине данные, которые я извлекаю из таблицы MSSQL, периодически делают мой JSON недействительным. Я не вижу никаких причин, почему это должно быть недопустимым … и тот же набор данных отлично работает для ДРУГИХ записей. Я пробовал разные кодировки символов… Я пробовал использовать htmlentities () и htmlspecialchars (), и записи сертификата по-прежнему делают JSON недействительным.
Вот пример недопустимого JSON
{"ЗАДАЧА": "тест", "ТИП": "Другая проблема", "ПОДТИП": """, "КАТЕГОРИЯ": """, "ЗАПРОС": "Мат Гильберт", "OPENDATE": "8 декабря 2010, 17:12", "ПРИОРИТЕТ": "2 - низкий", "DUEDATE": "", "DESCRIPT": "08.12.2010, 12: 12 по восточному поясному времени - scldom mgilbert test n", "СТАТУС" : "","ОТВЕЧАЕТ": ""}
Когда я использую jsonlint… это говорит мне следующее:
синтаксическая ошибка, неожиданный TINVALID в строке 10
Строка 10 — это поле «DESCRIPT».
Я совершенно не понимаю, почему это недопустимый JSON. Пожалуйста, помогите.
Комментарии:
1. Вы используете json_encode () и не пытаетесь вручную создать json самостоятельно, правильно?
2. htmlentities / htmlspecialchars предназначены для кодирования текста HTML … JSON не имеет абсолютно никакого отношения к HTML — вам нужно сгенерировать правильный текст Javascript, что представляет собой совершенно другую игру.
Ответ №1:
Вы должны избегать этой косой черты scldommgilbert
вот так scldom\mgilbert
.
Чтобы избавить себя в будущем от проблем с генерацией правильного JSON, вы можете использовать json_encode()
функцию PHP.
Комментарии:
1. Большое вам спасибо за это … к сожалению, сборка PHP, которую я использую (4.3.9), не имеет этой функции, и люди, которые поддерживают среду, не хотят обновляться до 5.x. Я написал свою собственную функцию для fudge, экспортирующую формат данных JSON… Я включу это прямо сейчас!
Ответ №2:
Это:
scldommgilbert
m
недопустимо. Измените его на \m