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;
+ }
+
}