#javascript #json #django
#javascript #json #джанго
Вопрос:
В моем приложении Javascript я выполняю вызов API для моего сервера Django /rest-auth/registration code
. Если попытка регистрации завершается неудачей, вызов API возвращает следующий JOSN, с разбором которого у меня возникают проблемы:
{
"_body":"{"email":["Enter a valid email address."],"username":["A user with that username already exists."]}",
"status":400,
"ok":false,
"statusText":"Bad Request",
"headers":{
"Server":[
"Apache/2.4.23 (Amazon) mod_wsgi/3.5 Python/3.4.3"
],
"Transfer-Encoding":[
"Identity"
],
"Content-Type":[
"application/json"
],
"Date":[
"Thu",
" 20 Oct 2016 13:10:04 GMT"
],
"Connection":[
"close"
],
"X-Frame-Options":[
"SAMEORIGIN"
],
"Access-Control-Allow-Origin":[
"*"
],
"Allow":[
"POST",
" OPTIONS"
]
},
"type":2,
"url":"http://www.worldimagearchive.com/rest-auth/registration/"
}
Я вижу, как извлечь значения ‘status’ и ‘ok’ (используя err.status
amp; err.ok
), но не могу понять, как проанализировать раздел «_body», который может содержать или не содержать ошибки для электронной почты, имени пользователя и т.д.
Что мне нужно сделать, чтобы получить значение "email"
раздела (и проверить, существует ли этот раздел, кстати)?
Комментарии:
1. Простое
_body.email
не работает?2.
JSON.parse(data["_body"])["email"]
3. JSON.parse(data[«_body»])[«электронная почта»] сделал это за меня. Спасибо Мамду
4. Я получаю исключение при попытке сделать это в браузере.
5. Я использую data._body, а не data[«_body»], и это работает для меня.
Ответ №1:
Ну, это JSON внутри JSON. Я пробовал множество вещей, и ничего не получалось, поэтому вот нетрадиционный метод получения электронной почты.
err=err.replace('"{','{').replace('}"','}'). replace(/\/gi, '')
JSON.parse(input)._body.email;//"Enter a valid email address."