модуль WebOb питона по умолчанию возвращает текст/html ответов, в частности, ServerErorr-х, и они в конечном итоге встраивание ошибку JSON Paylod в теле HTML responseText содержит следующее:Анализировать JSON из HTML responseText
<html>
<head>
<title>503 Service Unavailable</title>
</head>
<body>
<h1>503 Service Unavailable</h1>
{
"status": "object-specific error",
"payload": {
"Message": "Unable to list resources",
"HTTP Method": "GET",
"URI": "api/myManager/1.0/Node",
"Operation": "LIST",
"Object": {
"Name": "myManager.Node",
"Interface": "Node"
},
"Version": {
"Major": 1,
"Minor": 0
}
}
}<br /><br />
</body>
</html>
Использование Javascript на стороне клиента лучший способ извлечь JSON, встроенный в HTML? Каков наилучший способ извлечь этот объект JSON, встроенный в HTML?
Разделите его на структуру DOM, затем найдите текстовый элемент после элемента 'h1'. – Barmar
Я думаю, что лучший способ - обработать ошибку на стороне сервера и вернуть ответ как 'json'. Нет прямого способа разбора 'json', встроенного в html, как вы показали. Если вам действительно нужно извлечь json отсюда, вам нужно прочитать dom (это единственный способ) отдельную строку 'json', а затем использовать [JSON.parse()] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) –
Извлечение JSON из HTML - это плохая практика. Вы должны изменить сценарий на стороне сервера, чтобы вернуть JSON только – KmasterYC