我正在尝试将我的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“个
任何帮助将不胜感激。提前谢谢。
答案 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> </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> </p>