Android: Parsing HTML tags in JSON
can anybody help me parsing HTML tags in JSON?
I got tags like <b>, <p>, etc.
on the values of my JSON file. And I want to be able to parse them, so the text which is displayed on my app is shown based on the HTML tags.
here's my JSON parsing code:
void examineJSONFile()
{
try
{
String y = "";
InputStream is = this.getResources().openRawResource(R.raw.uni);
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(is, "Unicode")
);
int n;
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
} finally {
is.close();
}
String jsontext = writer.toString();
JSONArray entries = new JSONArray(jsontext);
int j;
for (j=0;j<entries.length();j++)
{
JSONObject post = entries.getJSONObject(j);
y += post.getString("description") + "\n";
}
txt_beschreibung.setText(y);开发者_开发百科
}
catch (Exception je)
{
txt_beschreibung.setText("Error w/file: " + je.getMessage());
}
}
and here's the sample of my JSON file:
[{
"title": "CARE Deutschland-Luxemburg e.V.",
"keyword": "CARE",
"description": "<p><b>Das CARE-Komplett-Paket für Menschen in Not</b></p><p>Schnell, nachhaltig und durchdacht, das ist das moderne CARE-Paket. CARE ist überzeugt, dass umfassende Hilfe von drei Seiten notwendig ist, um die weltweite Armut Schritt für Schritt zu verringern. Deswegen hat CARE sich seit seiner Gründung 1945 und dem Abwurf der ersten CARE-Pakete über Berlin weiter entwickelt. Heute steckt im CARE-Paket weit mehr als Zucker und Mehl. Heute bietet die Organisation in 70 der ärmsten Länder der Welt ein Komplett-Paket für Menschen in Not.</p><p><b>Das Komplett-Paket für Menschen in Not enthält:</b></p>*sofortige Nothilfe nach Katastrophen<br><br>*langfristige Entwicklungszusammenarbeit<br><br>*Schutz der Menschenrechte<br><br>",
"smallImageUrl": "http://cdn.spendino.de/web/img/projects/home/1284113658.jpg",
"bigImageUrl":"http://cdn.spendino.de/web/img/projects/small/1284113658.jpg",
"cost": "5"
},
{
"title": "Brot für die Welt",
"keyword": "BROT",
"description": "<p>„Brot für die Welt“ unterstützt unter der Maßgabe 'Helfen, wo die Not am größten ist' ausgewählte Projekte weltweit.</p><p>Von Angola bis Tansania, von der Förderung von Mahlzeiten bis zur gesundheitlichen Grundversorgung und Katastrophenhilfe.</p><p>Bei ihrem täglichen Kampf gegen Krankheiten, Hunger, Ungerechtigkeiten und Armut wird die Aktion „Brot für die Welt“ von der evangelischen Kirche unterstützt.</p><p>Die Aktion hat es sich zum Ziel gesetzt, die Entwicklungszusammenarbeit auf der ganzen Welt zu fördern und Hilfe zur Selbsthilfe zu leisten.</p>",
"smallImageUrl": "http://cdn.spendino.de/web/img/projects/home/1267454286.jpg",
"bigImageUrl":"http://cdn.spendino.de/web/img/projects/small/1267454286.jpg",
"cost": "5"
}]
Anything I can add on my method. I'm looking for a specific answer to my problem but I open to any kind of solution. Thank you
Have a look at android.text.Html.
You can use this to do something like:
textView.setText(Html.fromHtml("Hello, <b>I am bold</b>"));
android.text.Html could be your friend here.
static Spanned Html.fromHtml(
String source,
Html.ImageGetter imageGetter,
Html.TagHandler tagHandler )
http://developer.android.com/reference/android/text/Html.html
精彩评论