Передаю данные с сервера. Получаю дату на клиенте.
Паршу:
var msg = JSON.parse(data);
console.log(msg);
Получаю:
{'id': 17, 'created_at': None, 'modified_at': None, 'first_name': 'ccc', 'last_name': 'zzzzzzzzzxxxxxxxxx', 'full_name': 'xxxxxxxxxccc', 'email': None, 'password': None, 'active': True, 'confirmed_at': None, 'last_login_at': None, 'current_login_at': None, 'last_login_ip': None, 'current_login_ip': None, 'login_count': None, 'created_by': None}
Но при попытке получить значение по ключу,
msg.id
либо же msg["id"]
, в ответ получаю undefined
Предполагаю, что дело в "валидности", либо же в наличии None.
Подскажите, что делать? Желательно, чтобы данные не пришлось изменять на стороне сервера.
Заранее спасибо, и извиняюсь за банальный вопрос.
var newData = data.replace(/\'/g, "\""); // Меняем кавычки
newData = newData.replace(/\None/g, "null"); // Меняем None на null
newData = newData.replace(/\True/g, "true"); // Меняем True на trur
newData = newData.substr(1, newData.length-2); // Обрезаем первые и последние кавычки
var msg = JSON.parse(newData);
console.log(msg);
Есть несколько основных правил для создания строки JSON:
Чтобы включить двойные кавычки в строку, нужно использовать обратную косую черту: \". Так же, как и во многих языках программирования, можно помещать управляющие символы и шестнадцатеричные коды в строку, предваряя их обратной косой чертой.
Не уверен, что это сработает, и, вероятно, это не безопасно, но можно попробовать вот так:
var None = null; var True = true; eval("var msg = " + data);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Подскажите, как сделать такое меню добавления вкладок из списка, пожалуйста
Я так понял, что они нужны для динамического обновления данных в доме, но для этого нужен массив с данными, а получать их с помощью Ajax довольно...