【发布时间】:2016-08-19 16:06:17
【问题描述】:
Python 的 webob 模块默认返回 text/html 响应,特别是 ServerErorr 的响应,这些最终会在 HTML responseText 的正文中嵌入错误 JSON Paylod,其中包含以下内容:
<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 提取嵌入在 HTML 中的 JSON 的最佳方法是什么? 提取嵌入在 HTML 中的 JSON 对象的最佳方法是什么?
【问题讨论】:
-
解析成DOM结构,然后找到
h1元素后面的文本元素。 -
我认为最好的方法是在服务器端处理错误并将响应返回为
jsononly 。如您所示,没有直接的方法来解析嵌入在 html 中的json。如果你真的需要从这里提取json,你需要读取dom(这是唯一的方法)分隔json字符串,然后使用JSON.parse() -
从 HTML 中提取 JSON 是不好的做法。您应该修改服务器端脚本以仅返回 JSON
标签: javascript python html json parsing