diff --git a/.gitignore b/.gitignore index 466e248..df2eb87 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -out/ \ No newline at end of file +out/ +lib/ \ No newline at end of file diff --git a/.idea/howtodata.iml b/.idea/howtodata.iml index b107a2d..2f80014 100644 --- a/.idea/howtodata.iml +++ b/.idea/howtodata.iml @@ -7,5 +7,7 @@ + + \ No newline at end of file diff --git a/java_src/Address.java b/java_src/Address.java new file mode 100644 index 0000000..53235eb --- /dev/null +++ b/java_src/Address.java @@ -0,0 +1,5 @@ +package java_src; + +public record Address(String street, + String number, + String city) { } diff --git a/java_src/Person.java b/java_src/Person.java new file mode 100644 index 0000000..7b56227 --- /dev/null +++ b/java_src/Person.java @@ -0,0 +1,10 @@ +package java_src; + +import java.util.ArrayList; + +public record Person(String name, + int age, + String email, + Address address, + ArrayList hobbies, + ArrayList friends) { } diff --git a/java_src/TryOut.java b/java_src/TryOut.java index ce34642..389dc89 100644 --- a/java_src/TryOut.java +++ b/java_src/TryOut.java @@ -1,17 +1,59 @@ package java_src; +import javax.json.*; import java.io.IOException; +import java.io.StringReader; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.ArrayList; public class TryOut { public static void main(String[] args) { + String jsonString; try { - Path path = Paths.get("/home/jan/git-projekte/howtodata/JSON/alice.json"); - System.out.println(FileHelper.readJson(path)); + // Path path = Paths.get("/home/jan/git-projekte/howtodata/JSON/alice.json"); // Absoluter Pfad + Path path = Paths.get("JSON/alice.json"); // Besser: relativer Pfad + jsonString = FileHelper.readJson(path); + System.out.println("Aus Datei eingelesener Json-String:"); + System.out.println(jsonString); } catch (IOException e) { System.err.println(e); + jsonString = "{}"; } + JsonReader jsonReader = Json.createReader(new StringReader(jsonString)); + JsonObject ali = jsonReader.readObject(); + jsonReader.close(); + System.out.println("In JsonObject verwandelt:"); + System.out.println(ali.toString()); + System.out.println("Aus JsonObject erzeugtes Java-Record:"); + Person a1 = aliceAutomatically(ali); + System.out.println(a1); + System.out.println("Manuell erzeugtes Java-Record:"); } + + private static Person aliceAutomatically(JsonObject ali) { + ArrayList hob = new ArrayList<>(); + for (JsonValue hobby : ali.getJsonArray("hobbies")) { + JsonString jsonhobby = (JsonString) hobby; + hob.add(jsonhobby.getString()); + } + ArrayList fri = new ArrayList<>(); + for (JsonValue friend : ali.getJsonArray("friends")) { + JsonString jsonFriend = (JsonString) friend; + fri.add(jsonFriend.getString()); + } + JsonObject jasonAddr = ali.getJsonObject("address"); + Address javaAddr = new Address(jasonAddr.getString("street"), + jasonAddr.getString("number"), + jasonAddr.getString("city")); + Person aliAuto = new Person(ali.getString("name"), + ali.getInt("age"), + ali.getString("email"), + javaAddr, + hob, + fri); + return aliAuto; + } + }