diff --git a/gson/build.gradle.kts b/gson/build.gradle.kts
new file mode 100644
index 0000000..37021ac
--- /dev/null
+++ b/gson/build.gradle.kts
@@ -0,0 +1,16 @@
+/*
+ * Examples for Java
+ *
+ * Copyright (c) 2021. Elex. All Rights Reserved.
+ * https://www.elex-project.com/
+ */
+
+plugins {
+ id("elex-java")
+}
+
+dependencies {
+// https://mvnrepository.com/artifact/com.google.code.gson/gson
+ implementation("com.google.code.gson:gson:2.10.1")
+
+}
diff --git a/gson/logback.xml b/gson/logback.xml
new file mode 100644
index 0000000..74ff8a3
--- /dev/null
+++ b/gson/logback.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
diff --git a/gson/src/main/java/kr/pe/elex/examples/GsonSample.java b/gson/src/main/java/kr/pe/elex/examples/GsonSample.java
new file mode 100644
index 0000000..55ceded
--- /dev/null
+++ b/gson/src/main/java/kr/pe/elex/examples/GsonSample.java
@@ -0,0 +1,32 @@
+/*
+ * Examples for Java
+ *
+ * Copyright (c) 2021. Elex. All Rights Reserved.
+ * https://www.elex-project.com/
+ */
+
+package kr.pe.elex.examples;
+
+import com.elex_project.abraxas.Console;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class GsonSample {
+
+ public static void main(String... args){
+ Gson gson = new GsonBuilder().create();
+
+ // to json
+ Person charlie = new Person("Charlie", 13);
+ String json = gson.toJson(charlie);
+ Console.writeLine(json);
+
+ // from json
+ Person steve = gson.fromJson("{'name':'Steve', 'age':43}", Person.class);
+ Console.writeLine(steve);
+ }
+
+
+}
diff --git a/gson/src/main/java/kr/pe/elex/examples/Person.java b/gson/src/main/java/kr/pe/elex/examples/Person.java
new file mode 100644
index 0000000..86ac3fe
--- /dev/null
+++ b/gson/src/main/java/kr/pe/elex/examples/Person.java
@@ -0,0 +1,22 @@
+/*
+ * Examples for Java
+ *
+ * Copyright (c) 2023. Elex. All Rights Reserved.
+ * https://www.elex-project.com/
+ */
+
+package kr.pe.elex.examples;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ToString
+public class Person {
+ private String name;
+ private int age;
+}
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 3d6fbb0..07afe4f 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -15,5 +15,5 @@ include(
"xml", "jackson", "jsoup", "markdown", "network", "httpd",
"properties", "serial-io",
"mustache", "thymeleaf", "locale", "quartz", "sysinfo",
- "imaging", "stream", "sound", "midi"
+ "imaging", "stream", "sound", "midi", "gson"
)
diff --git a/stream/src/main/java/kr/pe/elex/examples/Sample.java b/stream/src/main/java/kr/pe/elex/examples/Sample.java
index 8a60fd7..6f7a8e9 100644
--- a/stream/src/main/java/kr/pe/elex/examples/Sample.java
+++ b/stream/src/main/java/kr/pe/elex/examples/Sample.java
@@ -19,8 +19,11 @@ public class Sample {
}
- public Stream toStream(List list) {
- return null == list ? Stream.empty() : list.stream();
+ /*
+ list to stream
+ */
+ public Stream toStream(final List list) {
+ return (null == list || list.isEmpty()) ? Stream.empty() : list.stream();
}