JSON Parser

  • 8 Antworten
  • Neuester Beitrag
Diskutiere JSON Parser im Android App Entwicklung im Bereich Betriebssysteme & Apps.
D

Didi95

Neues Mitglied
Hallo liebe Community :)
klasse Forum ist das hier:thumbsup:
Ich bin neu hier, und habe schon sogleich meine erste Frage:
Ich programmiere seit 2 Monaten mit Java und soll nun für unseren Vertretungsplan in der Schule,welcher online schon verfügbar ist, eine App schreiben um diesen auch auf dem handy anzeigbar zu machen. Ich habe hier das Forum sowie google durchforstet, und bin dabei immer wieder auf den Begriff JSON Parser gestoßen. Allerdings konnte ich aus keiner Erklärung schlau werden was das überhaupt im Detail sein soll.
Konkret möchte ich die Daten in einer Tabelle anzeigbar machen. sie sind mit dem programm untis als htmldateien abgespeichert....hat da jemand einen Lösungsansatz?
Vielen Dank schonmal im Voraus

Grüße
Didi
 
L

Laire

Ambitioniertes Mitglied
Um JSON zu nutzen, müsste der Vertretungsplan online auch in einem JSON Format angeboten werden.

Infos zu JSON: JavaScript Object Notation

Um die beste Möglichkeit herauszufinden, ist die Frage, wie Du auf die Dateien zugreifen kannst und in welchem Format sie auf dem Server liegen (z.B. MySQL).

Wenn die Daten wirklich nur als HTML Dateien auf dem Server vorliegen, dann wird es wohl nur möglich sein, diese Dateien einzulesen und durch ein script wie eine Textdatei, Zeile für Zeile zu analysieren.
 
A

AlexAnd

Ambitioniertes Mitglied
Vielleicht noch allgemein zu JSON, das bietet die Möglichkeit Daten unterschiedlichen Typs (Strings, Arrays, Booleans usw.) in einem einzigen formatierten String geschachtelt zu speichern. Da hierfür bereits Lese- und Schreibroutinen zur Verfügung stehen, kann dies von Vorteil sein, zB bei der Kommunikation mit einem Server oder auch beim internen Speichern.

Gruß
Alex
 
D

Didi95

Neues Mitglied
Vielen dank für die antworten! :)
Das hat mir schonmal geholfen. Ich hab mehrere codes ausprobiert um die html dateien auszulesen allerdinfs hat das alles nicht wirklich geklappt :/ hat jemabd da ein beispiel? Google war mir keine große hilfe...

Gesendet von meinem GT-N7000 mit der Android-Hilfe.de App
 
killphil75

killphil75

Fortgeschrittenes Mitglied
HTML ist ja mehr oder weniger auch nur ein XML Format (mehr oder weniger, weil es oft nicht sauber ist)

-< um HTML zu lesen brauchst du nur eine HTTP Verbindung aufbauen und kannst Dir die Seite als String runterladen.

zb. http://ricardozuasti.com/2009/get-a-web-page-programatically-from-android/

Beachte hierbei: ab Android 3 bzw 4 ist es nicht mehr erlaubt Netzwerkzugriffe direkt im Hauptthread eines Programmes auszuführen, die App schmiert dann mit einem Netzwerkfehler ab.
-> Netzwerkzugriffe gehören in einen eigenen Thread -> zb. über AsyncTask

-> damit man nicht jedes Mal das Rad neu erfinden muss, haben ein paar Leute nützliche Librarys entwickelt, welche Dich beim "Parsen" (so nennt man das auseinandernehmen /lesen der Seite) unterstützen

Ich nenne gerne an dieser Stelle HTMLCleaner
HtmlCleaner Project Home Page

und noch besser bzw. mag ich mehr weil er eine CSS-Selektor Sprache nutzt wie JQuery ist der Parser JSoup

jsoup Java HTML Parser, with best of DOM, CSS, and jquery
 
D

Didi95

Neues Mitglied
Zu der Sache mit dem Hauptthread habe ich nochmal eine Frage. Kann ich es nur nicht direkt in die Main_activity laden oder generell nicht in einer normalen activity?
Ich habe es immerhin schonmal hinbekommen dass er mir die seite in dem String speichert.
Allerdings scheine ich echt zu doof für das parsen zu sein. Kann ich diese Bibliotheken runterladen oder wie darf ich das verstehen?
Ich habe das auch so verstanden dass die Variable "n" zum Schluss die komplette Internetseite abspeichert als string. Kann ich also dann sagen Seite.setText("n") ?
 
Zuletzt bearbeitet:
killphil75

killphil75

Fortgeschrittenes Mitglied
Ich glaub du solltest mal noch ein paar mehr Android- bzw Javatutorials lesen.

In dem Beispielcode befindet sich die Seite am Ende in der Variable result

(steht auch unten drunter .>
// Now you have the whole HTML loaded on the result variable)

Bei den Bibliotheken die ich gepostet habe, befinden sich jeweils Beispielcodes wie man das in Java anwendet.

Bitte Activity nicht mit Thread verwechseln. Du musste nur aus deiner Activity heraus einen neuen Thread starten, wo der Netzwerkcode drin läuft. Ich finde am einfachsten die Variante mit dem AsyncTask, das nimmt dir viel Arbeit ab. Beispiel: http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html
 
D

Didi95

Neues Mitglied
Tut mir Leid....ich bemühe mich schon das alles zu verstehen, ist alles nur so viel :/
aaah sorry da hatte ich einen denkfehler-.-
Danke das du mir weiterhilfst! ;)