我正致力于估算我们在PhoneGap
(针对Hybrid Dev)或Xcode
/ Eclipse
(针对Native Dev)构建的应用程序的编码工作量。现在,我被卡住的部分是......
我正在使用web-API (现在使用REST-Client
,在代码中最终实现之前)并在成功点击后获得以下响应:
<!DOCTYPE html>
<html>
<head>
<title>Thing : DataTable Service Definition: getNumber</title>
</head>
<body>
<br>
`
<link href='/abc/css/xyz.css' rel='Stylesheet' type='text/css'>
<meta content='text/html' http-equiv='Content-Type'>
<meta content='no-cache, no-store' http-equiv='cache-control'>
<meta content='-1' http-equiv='expires'>
<meta content='no-cache, no-store' http-equiv='pragma'><img src=
"/abc/images/xyzLogo.png"><br>
<h1>Thing : DataTable Service Definition: getNumber</h1>
<table>
<tr>
<th>description</th>
<th>name</th>
<th>parameterDefinitions</th>
<th>resultType</th>
</tr>
<tr>
<td></td>
<td>getNumber</td>
<td>
<table>
<tr>
<th>baseType</th>
<th>description</th>
<th>name</th>
<th>bishop</th>
</tr>
<tr>
<td>STRING</td>
<td></td>
<td>param1</td>
<td>1.0</td>
</tr>
<tr>
<td>STRING</td>
<td></td>
<td>param2</td>
<td>2.0</td>
</tr>
<tr>
<td>DATETIME</td>
<td></td>
<td>param3</td>
<td>3.0</td>
</tr>
<tr>
<td>DATETIME</td>
<td></td>
<td>param4</td>
<td>4.0</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<th>baseType</th>
<th>description</th>
<th>name</th>
<th>bishop</th>
</tr>
<tr>
<td>INFOTABLE</td>
<td></td>
<td>result</td>
<td>0.0</td>
</tr>
</table>
</td>
</tr>
</table>`<br>
<br>
...
</body>
</html>
由于我熟悉 JSON序列化/解析,我正在寻找一种方法来转换来自HTML
标签的API响应&#39;格式为JSON
格式。
我觉得我只是远离我需要的一两行,但是,不知道我错过了什么或不知道......
答案 0 :(得分:0)
只有原始值(字符串,日期,布尔值,数字),对象和数组结构才能序列化为JSON。这意味着HTML中的其他主机对象可能不可序列化。
简而言之,JSON仅限于数据(“信息”)。
所以......做你想做的事情并不容易
你可以这样做:
如果页面是XHTML(符合XML语法的HTML变体 - 即所有元素都有开放和关闭标记,所有属性都有引用值等),那么您甚至不需要将HTML转换为XML先转换。但是你会得到一个与HTML结构相同的JSON文档,例如:
你好,世界
一些文字
转换为:
“html”:{“head”:{“title”:“Hello World”},“body”:{“p”:“Some text”}}