解码在Java中从Android上的JSON响应中转义HTML标记

时间:2016-09-24 22:11:33

标签: java android html json decode

我正在尝试将我的Android应用程序正在接收的JSON属性解码为转义HTML。我在最新的Android Studio IDE(2.2)上使用Java 8,无法找到来自Google的Android库或现有的java代码来帮助我解决这个问题。

我不打算删除HTML,我想要浏览HTML,然后在TextView中完整地显示HTML。有很多方法可以正确显示HTML,但到目前为止只有一种方法可以通过I库从转义的String中提取HTML,我在GitHub上发现了名为Unbescape的文件。我希望我不必包含库,因为我只有一个JSON属性可以应对,它看起来有点矫枉过正。

JSON属性收到:

“HTML”:“\ u003cp \ u003e \ u003cu \ u003e \ u003cstrong \ u003e另一条消息\ u003c / strong \ u003e \ u003c / u \ u003e \ u003c / p \ u003e \ n \ n \ u003cp \ u003e \ u0026# 160; \ u003c / p \ u003e \ n \ n \ n \ u003可用border = \“1 \”cellpadding = \“1 \”cellspacing = \“1 \”style = \“width:100%\”\ u003e \ n \吨\ u003ctbody \ u003e \ n \吨\吨\ u003ctr \ u003e \ n \吨\吨\吨\ u003ctd \ u003easdf \ u003c / TD \ u003e \ n \吨\吨\吨\ u003ctd \ u003easdfa \ u003c / TD \ u003e \ n \吨\吨\ u003c / TR \ u003e \ n \吨\吨\ u003ctr \ u003e \ n \吨\吨\吨\ u003ctd \ u003easdf \ u003c / TD \ u003e \ n \吨\吨\吨\ u003ctd \ u003easdfa \ u003c / TD \ u003e \ n \吨\吨\ u003c / TR \ u003e \ n \吨\吨\ u003ctr \ u003e \ n \吨\吨\吨\ u003ctd \ u003easdfa \ u003c / TD \ u003e \ ñ\吨\吨\吨\ u003ctd \ u003esdfasd \ u003c / TD \ u003e \ n \吨\吨\ u003c / TR \ u003e \ n \吨\ u003c / tbody的\ u003e \ n \ u003c /表\ u003e \ n \ ñ\ u003cp \ u003e \ u0026#160; \ u003c / p \ u003e \ n“个

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

假设您显示的是JSON对象的JSON属性,您可以非常简单地测试JSON解析。

使用{}包围的内容创建一个文本文件,使其成为有效的JSON对象。

{ "HTML": "\u003cp\u003e\u003cu\u003e\u003cstrong\u003eAnother Message\u003c/strong\u003e\u003c/u\u003e\u003c/p\u003e\n\n\u003cp\u003e\u0026#160;\u003c/p\u003e\n\n\u003ctable border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%\"\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003easdf\u003c/td\u003e\n\t\t\t\u003ctd\u003easdfa\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003easdf\u003c/td\u003e\n\t\t\t\u003ctd\u003easdfa\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003easdfa\u003c/td\u003e\n\t\t\t\u003ctd\u003esdfasd\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003cp\u003e\u0026#160;\u003c/p\u003e\n" }

然后运行此代码,读取文本文件。

如下所示,JSON解析器可以为您解决所有问题。

public class Test {
    @SerializedName("HTML")
    String html;
    public static void main(String[] args) throws Exception {
        Gson gson = new GsonBuilder().create();
        try (Reader reader = new FileReader("test.json")) {
            Test test = gson.fromJson(reader, Test.class);
            System.out.println(test.html);
        }
    }
}

输出

<p><u><strong>Another Message</strong></u></p>

<p>&#160;</p>

<table border="1" cellpadding="1" cellspacing="1" style="width:100%">
    <tbody>
        <tr>
            <td>asdf</td>
            <td>asdfa</td>
        </tr>
        <tr>
            <td>asdf</td>
            <td>asdfa</td>
        </tr>
        <tr>
            <td>asdfa</td>
            <td>sdfasd</td>
        </tr>
    </tbody>
</table>

<p>&#160;</p>