2017-05-30 4 views
-2

Ich danke für einen Blick.JSON API für Java. JsonParser zu JsonObjects und JsonArrays

Ich arbeite an einem Problem, wo ich in der Lage sein muss, einen Json in den Speicher zu bekommen und in der Lage zu sein, um die Schlüssel zu "navigieren".

Ich kann die Json.createParser() -Methode verwenden und den FileReader in den Argumenten verwenden, um die Datei in meinem System zu erhalten. Mein Problem ist, dass ich von dort noch keine Möglichkeit habe, das JsonParser-Objekt zu JsonObject zu nehmen, um Werte von zu lesen.

Ich verwende das Paket javax.json.

Ich möchte in der Lage sein, um die Json-Daten zu navigieren, die ich leicht mit JsonObject und JsonArray, aber mit dem JsonParser-Objekt.

Danke für Ihre Zeit.

+0

Was meinen Sie mit "navigieren" um die Tasten? JsonParser ist ziemlich niedrig. Sie können JSON als einen Strom typisierter Tokens interpretieren. Sie könnten mehr an JsonReader interessiert sein, wenn Sie nur den gesamten Baum in den Speicher lesen möchten. –

+0

Ich denke, ich meine, ich möchte im Allgemeinen tiefer in die Objekte der Objekte der Arrays der Objekte lol gehen. Ich werde JsonReader ansehen, danke. – JoeS

Antwort

1

Okay, ich habe es herausgefunden.

Hier ist, was die json wie folgt aussieht:

{ 
    "name": "Changed name", 
    "Items": 
     [ 
      {"item1": "the_fist_item"}, 
      {"item2": "the_second_item"}, 
      {"item3": "the_second_item"} 
     ] 
} 

dann innerhalb des Java ...

import java.io.FileReader; 
import javax.json.*; 

public class JsonTester 
{ 
    public static void main(String[] args) 
    { 
    try 
    { 

     JsonReader json_file = Json.createReader(new FileReader("***the directory to the json file***")); 
     JsonObject json_object = json_file.readObject(); 

     String the_second_item = json_object.getJsonArray("Items").getJsonObject(1).get("item2").toString(); 

     System.out.println(the_second_item); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
    } 
} 

Die Navigation Teil Ich habe versucht, auf the_second_item zu erreichen. Welches sind all die get() - Methoden, um tiefer in die JSON-Datei zu gehen, um den spezifischen Wert zu erhalten, den ich wollte.

Danke an David Ehrmann für seine Hilfe.

Verwandte Themen