Changelog aus JSON

MrBarsack

Mitglied
Hallo,

Aktuell arbeite ich an einem Art Launcher für ein Projekt. Dabei kommt es zu Problem beim Changelog. Diesen will ich über JSON von folgenden Link holen:

http://jenkins.movingblocks.net/job/Terasology/lastSuccessfulBuild/api/json?pretty=true

Wie ihr dort wahrscheinlich seht, sind unter "Changeset" viele "msg"'s mit dem Inhalt der Änderungen.
Leider habe ich keine so guten Kenntnisse von JSON und habe überhaupt keine Idee, wie man alle Änderungen, also nur die "msg"'s in einen String packen könnte, welchen ich dann als Changelog verwenden könnte.

Ich hoffe, ich habe meine Frage verständlich formuliert.

Danke in Voraus,

MrBarsack
 

kay73

Bekanntes Mitglied
Normalerweise setzt man Bibliotheken wie Jackson, gson oder die "Offizielle" von json.org ein um JSON zu parsen und/oder in eine Objektrepräsentation zu bringen, die man durch "scharfes Hinsehen" ableiten kann. Die Jenkins-API scheint allerdings reichlich konfus: Zweimal ein "author" und ein "msg"-Element für eine (commit-)id. Auch das auf der API-Doku-Seite verlinkte Schema scheint mit dem Output Deiner URL wenig zu tun zu haben.

Pragmatischer Vorschlag: Nutze statt der JSON- die XML-API und mach Dir die XPath-Option zu Nutze. Ich bin nicht so der XPath-Held, aber das hier

Code:
http://jenkins.movingblocks.net/job/Terasology/lastSuccessfulBuild/api/xml?xpath=//changeSet/item/msg[1]|//changeSet/item/date[1]|//changeSet/item/author[1]/fullName&wrapper=msgs

sollte ein leicht verarbeitbares XML liefern.
[XML]<msgs>
<fullName>benjamin.glatzel</fullName>
<msg>Hotfix for my last commit.</msg>
<date>2013-02-02 19:55:19 +0100</date>
</msgs>[/XML]

In der URL oben kannst Du leicht die Teile, die mit "|" getrennt sind, ergänzen, löschen u.s.w. Ich bin mir nur nicht sicher, wie der Output aussieht, wenn es mehrere "item"-s gibt.
 

MrBarsack

Mitglied
Hallo,

Vielen Dank für die Antwort.

Zusammen mit dem folgenden Code hat es nun funktioniert:

Java:
        private static Document getLatestChangeLog() throws IOException, ParserConfigurationException, SAXException {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();

            return builder.parse( new URL("http://jenkins.movingblocks.net/job/Terasology/lastSuccessfulBuild//api/xml?xpath=//changeSet/item/msg[1]|//changeSet/item/author[1]/fullName&wrapper=msgs").openStream() );
        }

         public static void setLatestChangelog()
         {
             Document doc = null;
             try {
                 doc = getLatestChangeLog();
             } catch (IOException e) {
                 e.printStackTrace();
             } catch (ParserConfigurationException e) {
                 e.printStackTrace();
             } catch (SAXException e) {
                 e.printStackTrace();
             }
             NodeList nodeList = null;
             if (doc != null) {
                 nodeList = doc.getElementsByTagName("msg");
             }

             StringBuilder str = new StringBuilder();
             for(int a = 0; a < nodeList.getLength(); a++)
             {
                str.append("-").append(nodeList.item(a).getLastChild().getTextContent()).append(System.lineSeparator());
             }

             try {
                 Main.launcher.getChangelogTextArea().setText("Changelog Build " + VersionChecker.checkVersionFromSite(new URL("http://updater.movingblocks.net/unstable.ver")) + ":" + System.lineSeparator() + str.toString());
             } catch (IOException e) {
                 e.printStackTrace();
             }
         }

Ich hoffe, damit kann später jemand auch etwas anfangen.

Ansonsten nochmal danke ;)

Gruß, MrBarsack
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ven000m Eclipse 3.0.1 <> Eclipse 3.1 Changelog? Allgemeine Java-Themen 2
M JSON Parsing von youtube video comment replies Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
W JSON parsen eines ,mit JS.stringify erstellten Strings Allgemeine Java-Themen 27
O JSON in Integer parsen Allgemeine Java-Themen 5
F Junit Test + Cucumber - JSON auslesen und in einem weiteren Schritt nutzen Allgemeine Java-Themen 0
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
G Json POST-REQUEST Allgemeine Java-Themen 14
J json Array würfel Spalten durcheinander Allgemeine Java-Themen 9
Mario1409 Methoden JSON Array von URL Allgemeine Java-Themen 8
D JSON to String Allgemeine Java-Themen 31
K Große JSON-Dateien schnell und effizient verarbeiten Allgemeine Java-Themen 16
F Json in sql speichern und lesen Allgemeine Java-Themen 10
F Alte Passörter mit Gson und Json in SQL speichern? Allgemeine Java-Themen 5
C Nested JSON in Java ansprechen [Wordpress Rest Api] Allgemeine Java-Themen 26
J Frage zum Entwurf / json-Datenmodell Allgemeine Java-Themen 8
2 mehrere Json Werte Parsen Allgemeine Java-Themen 3
agent47 JSON verarbeiten Allgemeine Java-Themen 4
G JSON parsen Allgemeine Java-Themen 3
Thallius Simple JSON Parser Error null Allgemeine Java-Themen 6
J Java JSON-Datei aus .Zip auslesen und Download mit Progress Bar Allgemeine Java-Themen 20
L Lib gesucht: Java-Objekte mit JSON Allgemeine Java-Themen 2
M JSON NullPointerException Allgemeine Java-Themen 5
B json zu java class Allgemeine Java-Themen 2
F Java Restapi JSON Allgemeine Java-Themen 5
G Json-Lib NoClassDefFoundError Allgemeine Java-Themen 3
O JSON String bauen aus Liste Allgemeine Java-Themen 2
O Vorteile von GSON ggü. JSON "per Hand" Allgemeine Java-Themen 4
O JSON: ClassNotFound Allgemeine Java-Themen 8
C Strings und JSON Objekte so klein wie möglich im Speicher ablegen Allgemeine Java-Themen 5
J Lucene suche in Json (CouchDB) Allgemeine Java-Themen 2
K Regex JSON Allgemeine Java-Themen 3
G JSON Object auslesen Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben