【问题标题】:How to convert a web API's response from HTML tags' format to JSON如何将 Web API 的响应从 HTML 标签格式转换为 JSON
【发布时间】:2015-03-02 11:05:54
【问题描述】:

我正在为我们将在PhoneGap(用于混合开发)或Xcode/Eclipse(用于原生开发)中构建的应用程序估算编码工作量。现在,我被卡住的部分是......

我正在使用 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 序列化/解析,我正在寻找一种方法来将此 API 响应从 HTML 标签格式转换为 JSON 格式。

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

【问题讨论】:

  • Map HTML to JSON 的可能重复项
  • 不完全是@MerianosNikos,因为它基本上看起来像是对附近解决方案的一个很大的长切。一方面,我(现在)正在寻找一种在 REST-Client 浏览器插件上转换此响应的方法。其次,寻找可能对我有用的参数的更改/使用之类的东西。比如,例如,他们在你建议的可能重复的理论部分写了text\xml

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


【解决方案1】:

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

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

所以...做自己想做的事并不容易

你可以这样做:

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

你好世界

一些文字

转换为:

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

【讨论】:

  • 感谢@JoaoMarcos,但我只需要 JSON 格式的特定数据。
  • 如果我的回答有用,请批准。提前谢谢
  • 对不起,我以为我上次自己传达了。你写的没关系,但我没有得到我想要/需要的东西。
猜你喜欢
  • 2023-04-01
  • 1970-01-01
  • 2015-11-20
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 1970-01-01
  • 1970-01-01
  • 2014-05-24
相关资源
最近更新 更多