如何将Web API的响应从HTML标记的格式转换为JSON

时间:2015-03-02 11:05:55

标签: html json cordova rest asp.net-web-api

我正致力于估算我们在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格式。

我觉得我只是远离我需要的一两行,但是,不知道我错过了什么或不知道......

1 个答案:

答案 0 :(得分:0)

只有原始值(字符串,日期,布尔值,数字),对象和数组结构才能序列化为JSON。这意味着HTML中的其他主机对象可能不可序列化。

简而言之,JSON仅限于数据(“信息”)。

所以......做你想做的事情并不容易

你可以这样做:

如果页面是XHTML(符合XML语法的HTML变体 - 即所有元素都有开放和关闭标记,所有属性都有引用值等),那么您甚至不需要将HTML转换为XML先转换。但是你会得到一个与HTML结构相同的JSON文档,例如:

  你好,世界    

一些文字

 

转换为:

“html”:{“head”:{“title”:“Hello World”},“body”:{“p”:“Some text”}}