Konvertierung von json zum Java Objekt nach vorgegebenem Schema

q-jack

Mitglied
Hallo Zusammen,
Ich hoffe ihr könnt mir helfen. Google konnte mir mit meinem Problem nicht helfen.
Ich habe folgendes Schema:

// schema of the 101 wiki in the Entity Relationship Schema Notation
// (see megalib/ERGraphGraph.php)
// @ means key
// ! means 1
// ? means 0..1
// * means *
// This file is used in particular in the context of the module Wiki101JsonToWiki101Rdf
// to drive the transformation from Json to RDF (via ERGraph).
//
// IMPORTANT: Only the classes and attributes listed below will be converted
// This means that there could be more classes and attributes in the original json file.
// Attributes names should be the same as those in the json files.
// There is a mapping file for the binding between class and top level category.


// Note (1): Some fields are currently ignored because the fact that they contain XML
// leads to problems in graphml generation. Will be fixed later.

Category {
id: string@ ;
name: string! ;
type: string! ;
url: string! ;
headline: string? ;
headline_links: Entity* ;
// discussion:string? ; // See Note (1)
discussion_links:Entity* ;
categories: Category* ;
languageMembers: Language* ;
conceptMembers: Concept* ;
featureMembers: Feature* ;
implementationMembers: Implementation* ;
technologyMembers: Technology*
}

Concept {
id: string@ ;
name: string! ;
type: string! ;
url: string! ;
headline:string? ;
headline_links: Entity* ;
// discussion:string? ; // See Note (1)
discussion_links:Entity* ;
}

Feature {
id: string@ ;
name: string! ;
type: string! ;
url: string! ;
headline:string! ;
headline_links: Entity* ;
// description:string? ; // See Note (1)
description_links:Entity* ;
// illustration:string? ; // See Note (1)
illustration_links:Entity* ;
implementations:Implementation*
}

Implementation {
id: string@ ;
name: string! ;
type: string! ;
url: string! ;
headline: string! ;
headline_links: Entity* ;
// motivation: string! ; // See Note (1)
motivation_links:Entity* ;
features: Feature* ;
languages: Language* ;
technologies: Technology* ;
// usage:string? ; // See Note (1)
usage_links:Entity* ;
}

Language {
id: string@ ;
name: string! ;
type: string! ;
url: string! ;
headline: string! ;
headline_links: Entity* ;
// description: string? ; // See Note (1)
description_links:Entity* ;
implementations: Implementation*
}

Technology {
id: string@ ;
name: string! ;
type: string! ;
url: string! ;
headline: string! ;
headline_links: Entity* ;
// description: string? ; // See Note (1)
description_links:Entity* ;
implementations: Implementation*
}

Page {
id: string@ ;
name: string! ;
type: string! ;
url: string! ;
headline: string! ;
headline_links: Entity* ;
// discussion:string? ; // See Note (1)
discussion_links:Entity*
}

und eine json datei. ich poste nur einen einen kleinen teil daraus, da diese sehr lang ist.

{

"Category": {
"AspectADASHoriented_programming_language": {
"languageMembers": [
{
"type": "Language",
"name": "AspectJ"
}
],
"discussion_links": [ ],
"name": "Aspect-oriented programming language",
"categoryMembers": [ ],
"pageMembers": [ ],
"url": "http://101companies.org/index.php/Category:Aspect-oriented programming language",
"headline_links": [
{
"type": "Concept",
"name": "aspectADASHoriented_programming_paradigm"
}
],
"discussion": "",
"technologyMembers": [ ],
"headline": "a programming language in the [[aspect-oriented programming paradigm]]",
"conceptMembers": [ ],
"implementationMembers": [ ],
"type": "Category",
"categories": [ ],
"featureMembers": [ ]
},
"XML_technology": {

Ich habe in java die einzelnen Klassen aus dem Schema mit gettern und settern erstellt, sowie ein toString methode implementiert.
in der main lese ich das file ein, aber bekomme bei der Ausgabe nur null-Werte.
Ich habe etwas in der Richtung gelesen, dass ich eine zusätzliche Klasse brauche, die HasMaps der einzelnen Klassen enthalten soll, aber ich kann damit nichts anfangen bzw. verstehe den Sinn nicht.
Hier mein Code aus der main, über tipps wäre ich sehr dankbar

Java:
public class JsonQueryApi {

	public static void main(String [] args) throws IOException{

	try {
		 
		BufferedReader br = new BufferedReader(
			new FileReader("Wiki101Full.json"));
			
		Gson gson = new Gson();
 
		//convert the json string back to object
		Implementation implementation = gson.fromJson(br, Implementation.class);
 
		System.out.println(implementation);
 
	} catch (IOException e) {
		e.printStackTrace();
	}
}
}
und hier einmal die Implementation Klasse
Java:
public class Implementation {
	public String name;
	public String id;
	public String type;
	public String url;
	public String headline;
	public ArrayList<Language> languages;
	public ArrayList<Technology> technologies;
	
	public  Implementation(String name, String id, String type,
			String url, String headline, ArrayList<Language> Languages,ArrayList<Technology>technologies ){
		this.name = name;
		this.id = id;
		this.type  = type;
		this.url=url;
		this.headline=headline;
		
		
	}

	public String getName(){
		return name;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getHeadline() {
		return headline;
	}

	public void setHeadline(String headline) {
		this.headline = headline;
	}

	public ArrayList<Language> getLanguages() {
		return languages;
	}

	public void setLanguages(ArrayList<Language> languages) {
		this.languages = languages;
	}

	public ArrayList<Technology> getTechnologies() {
		return technologies;
	}

	public void setTechnologies(ArrayList<Technology> technologies) {
		this.technologies = technologies;
	}

	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
	   return "Implementation [name=" + name + ", id=" + id + ", type="
		+ type +", url=" + url + ", headline=" + headline +"]";
	}

}
 

Kenan89

Bekanntes Mitglied
Du benutzt den library von google, ne?
Mit simple-json.jar könnte ich dir weiterhelfen. Wenn du willst benutze den.
Einfach in google eintippen und downloaden.
Funktioniert im Prinzip gleich, wenn ich mir so deinen Code ansehe.
 

q-jack

Mitglied
ja. man hat uns empfohlen google zu benutzen aber ich bin gerne bereit was anderes auszuprobieren. Ich lade mir mal die simple-json.jar herunter und probier mal herum.
Über ein kleine Hilfestellung wäre ich dankbar, wenn du sagst dass die fast gleich funktionieren, würde ich ja an der selben Stelle hängen bleiben.
 

q-jack

Mitglied
Java:
InputStream ijson = new FileInputStream("Wiki101Full.json");
String jsonTxt = IOUtils.toString( ijson );

		   
		   JSONParser parser = new JSONParser();
		   Object obj=parser.parse(jsonTxt);
		   System.out.println(obj);

Das habe ich jetzt eingefügt und der zeigt mir auch schön die Inhalte an, aber ich habe da ja noch keine Struktur drin. Wie bekomme ich das hin? Die Klassen Category, Concept, Implemenatation...siehe Schema stehen ja ganz außen und da drin verschachtelt sind weitere Werte die ich abfragen muss.
Wie kann ich das am Besten lösen. Hatte das mit einer HashMap probiert, aber da hatte ich nicht die Möglichkeit einzelne Werte abzufragen wie z.B. "gib mir alle id von Implementation aus die die Language name=haskell haben
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Json Objekt sinnvoll plätten? XML & JSON 1
W com.android.volley.ParseError: org.json.JSONException: End of input at character 0 of XML & JSON 6
L JSON auslesen und Labels in GUI verwenden XML & JSON 13
mananana Frage zu JSON XML & JSON 3
wofus JSON filtern nach bestimmten Wert XML & JSON 7
N JSON export String Unicode? XML & JSON 6
L Json reader XML & JSON 15
megusta JSON umschreiben (converter)? XML & JSON 4
P verschachteltes json verändern XML & JSON 3
Avalon JSON flatten und wieder in DTO konvertieren XML & JSON 21
M Objekt zu jsonArray in .json datei hinzufügen ? XML & JSON 3
Z json inkl. Array/Verschachtelung erstellen XML & JSON 2
J Object in JSON Datei einlesen und als neues Object erzeugen (in ein Object Array) XML & JSON 29
Trèfle Formatierung v. JSON File XML & JSON 7
M json page 2 auslesen XML & JSON 1
K JSON mit GSON nutzen XML & JSON 4
S Java REST Client + Json XML & JSON 8
W Search Value in Json XML & JSON 6
K JSON-Bibliothek XML & JSON 5
M Großes Json Objekt benutzen XML & JSON 5
M Json auslesen XML & JSON 7
M Xml oder Json? XML & JSON 15
J JSON zu Java mit der GSON Google API XML & JSON 0
G Jackson JSON: Dynamische Serialisierung XML & JSON 6
W Json von URL Lesen (mit Gson Library) XML & JSON 3
W Json von URL Lesen XML & JSON 2
L Jackson JSON: Probleme beim einlesen XML & JSON 1
J JSon-Converter gesucht XML & JSON 2
J JSon <-> XML zwecks Validierung XML & JSON 4
M [JSON] Wie Splitten? XML & JSON 14
G Mit JSON Java und C# verbinden XML & JSON 4
W jaxws jaxb wsdl Java-Klassen generieren und binding.xml verwenden XML & JSON 1
iman XML Attribute mit JAVA einlesen mit Spring Batch XML & JSON 0
T Tags in XML Datei mit Java erstellen XML & JSON 3
E JAXB und java.nio.file.Path XML & JSON 4
B XML-Daten mit SAX Parser verarbeiten in Java XML & JSON 4
L Lässt sich folgendes so oder so ähnlich mit Java und XML umsetzen XML & JSON 3
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
L login - Java IOException jaas.config File or Directory not present XML & JSON 1
M Text eines Elements in XML Datei mit JAVA bearbeiten und kompletten Element-Zweig hinzufügen XML & JSON 16
B JAXB - java.util.Locale does not have a no-arg default constructor XML & JSON 2
E JAVA simple.JSONObject cannot be cast to simple.JSONArray XML & JSON 9
P Einheiten in Java XML & JSON 4
T Visualisierung von XML Dateien in einer Java SwingGui XML & JSON 11
A WSDL und Java XML & JSON 5
A XMLRPC für Java XML & JSON 3
S XML auf Java Klassen Mappen XML & JSON 10
N Java XML schreiben funktioniert nicht XML & JSON 1
B aus xsd Java Klassen generieren XML & JSON 3
MiMa Mehrfachvariablen in Java durch XML XML & JSON 4
Q XML-File als Objekt in Java XML & JSON 6
AMStyles XPATH Befehl SVG Java XML & JSON 2
S Wie aktualisiert man den Java-Kode mit FOP1.0? XML & JSON 1
L XSL: Aufruf Java-class XML & JSON 11
N Java Code aus XML Datei generieren XML & JSON 8
GUI-Programmer java.io.File aus .jar beziehen XML & JSON 6
A Unterschiedliche Datenstruktur XML <-> Java mappen XML & JSON 9
R XSD aus Java Klassen erzeugen?? XML & JSON 2
N xsd pattern in java einlesen XML & JSON 6
M java.lang.RuntimeException: Failed to parse document XML & JSON 4
F SOAP in Java XML & JSON 6
Q Atom/RSS-Feed lesen - per XSD zu Java-Code XML & JSON 4
S JAXB 2 und Java Annotationen/Interfaces generieren XML & JSON 3
N Google Wetter XML (nur current_condition) auslesen mit Java XML & JSON 15
F Einlesen von JDBC connection in Java von XML XML & JSON 4
D xsd->java mit Eclipse?! oder wie? XML & JSON 27
M Probleme mit XPath bei Java XML & JSON 5
_dp Java XML Parse error: findet end-tags nicht XML & JSON 10
V JAXB schema 2 java XML & JSON 3
S XJC --> Java-Objects compile Problem XML & JSON 4
K XML Datei in ein Java package „einbinden" XML & JSON 3
H Java - XML - Rekursion - Verwirrung XML & JSON 6
F XML Datei in Java einlesen XML & JSON 4
J XSD > XML > Java XML & JSON 7
F XML mit Java XML & JSON 2
algorismi SVG Datein mit Batik in Java reinladen XML & JSON 3
S Java - Klassen erzeugen aus xsd bzw. wsdl XML & JSON 3
D ID's aus XML Datei rauslesen und in Java ausgeben XML & JSON 7
N value Wert einer XML Datei mit JAVA bearbeiten XML & JSON 21
Mike90 -xlsx Dateien in Java lesen XML & JSON 3
T StAX / SAX => Wie XML Datenstruktur in Java abbilden? XML & JSON 2
H XML plattformunabhängig/Open Source für Java XML & JSON 4
C Java-Imports bei Jaxb XML & JSON 8
slawaweis Problem mit XSLT (wahrscheinlich ein Bug in Java 6) XML & JSON 16
Fadi .classpath(XML) mit Java lesen XML & JSON 2
M Frage zu Erklärung im Online book "Java ist auch eine I XML & JSON 4
M Problem mit FOP in Java Programm XML & JSON 2
H Fop / Java /Fonts XML & JSON 6
H XSL Aufruf via Java mit neuen Fonts XML & JSON 9
T Java Klasse für gegebenes XML erstellen XML & JSON 4
M Xlink in Java-Objekt umwandeln XML & JSON 9
S Jdom+java webstart XML & JSON 4
P Einstieg in XML mit Java XML & JSON 3
G MS-Word Dokument mit Java erstellen XML & JSON 2
N AXIOM mit Java 1.4 XML & JSON 4
J DTD in Java integrieren? XML & JSON 3
L XML Datei in Java angeben Pfad? XML & JSON 3
G Problem mit XML-Schema Validierung mit Java XML & JSON 12
G XML mit JAVA an URL senden (http post) XML & JSON 12
D Java DOM Ausgabe ohne XML header XML & JSON 4

Ähnliche Java Themen

Neue Themen


Oben