Pada kesempatan kali ini saya ingin berbagi dengan sahabat tentang konversi object menjadi JSON atau sebaliknya.
Sahabat tentunya sudah tidak asing lagi dengan format JSON bukan?
Bagi yang belum kenal, silahkan kenalan lebih dalam lewat halaman wikinya ya. :)
Sebenarnya kita bisa membuat coding sendiri untuk melakukan konversi ke format JSON,
Perlu diketahui, seperti biasa saya menggunakan Maven, sehingga untuk menambahkan library Google Gson kita tinggal mengedit file pom.xml dan menambahkan dependency berikut:
Sebenarnya kita bisa membuat coding sendiri untuk melakukan konversi ke format JSON,
karena JSON merupakan format yang berbasis text.
Hanya saja, jika sudah ada yang membuatnya terlebih dahulu dan sudah production ready, terlebih lagi jika pembuatnya adalah Google, kenapa harus membuat library sendiri.
Hanya saja, jika sudah ada yang membuatnya terlebih dahulu dan sudah production ready, terlebih lagi jika pembuatnya adalah Google, kenapa harus membuat library sendiri.
Ingat prinsip don't reinvent the wheel kan.
Jadi saya memilih untuk menggunakan library Google Gson, yang informasi lebih detailnya bisa dinikmati pada halaman berikut, http://code.google.com/p/google-gson/.
Ok, let's get our hand dirty !
Perlu diketahui, seperti biasa saya menggunakan Maven, sehingga untuk menambahkan library Google Gson kita tinggal mengedit file pom.xml dan menambahkan dependency berikut:
<dependency> <groupid>com.google.code.gson</groupid> <artifactid>gson</artifactid> <version>2.2.2</version> </dependency>
Pertama saya, membuat sebuah class POJO dengan nama Person, sebagai object yang akan dikonversi.
Isi classnya sederhana saja, namun saya sudah mengoverride method toString agar hasil System.out.print class Person bisa dibaca dengan mudah.
Google Gson menyediakan class Gson untuk menghandle proses konversi, melalui method toJson dan fromJson.
Berikut saya lampirkan class util yang saya buat
Secara default output json yang dihasilkan oleh Gson masih dalam mode compact,
namun Gson juga menyediakan opsi untuk menghasilkan output json yang lebih mudah dibaca (*disebut prettyprint).
Kemudian kita buat main class untuk mencoba perbedaan antara mode compact dan mode prettyprint.
Output hasil run main class tersebut adalah sebagai berikut:
Json compact:
{"name":"Eko Suhariyadi","age":26,"message":["Uzumaki Naruto","Uchiha Sasuke","Hatake Kakashi","Jackson Michael"]}
Json prettyprint:
{
"name": "Eko Suhariyadi",
"age": 26,
"message": [
"Uzumaki Naruto",
"Uchiha Sasuke",
"Hatake Kakashi",
"Jackson Michael"
]
}
name: Eko Suhariyadi
age: 26
message:
Uzumaki Naruto
Uchiha Sasuke
Hatake Kakashi
Jackson Michael
Bagaimana, sangat mudah kan !?
Selamat mencoba dan happy coding :).
Source code bisa diakses melalui akun github saya, https://github.com/ekosuhariyadi/belajar-java
public class Person { private String name; private int age; private Listmessage; public Person() { } public Person(String name, int age, List message) { this.name = name; this.age = age; this.message = message; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public List getMessage() { return message; } public void setMessage(List message) { this.message = message; } @Override public String toString() { StringBuilder buffer = new StringBuilder(); buffer.append(String.format("name: %s\n", name)); buffer.append(String.format("age: %d\n", age)); buffer.append("message:\n"); if (null != message) { for (String msg : message) { buffer.append(String.format("\t%s\n", msg)); } } return buffer.toString(); } }
Isi classnya sederhana saja, namun saya sudah mengoverride method toString agar hasil System.out.print class Person bisa dibaca dengan mudah.
Google Gson menyediakan class Gson untuk menghandle proses konversi, melalui method toJson dan fromJson.
Berikut saya lampirkan class util yang saya buat
public class JsonUtil { public static String convertPersonToJson(Person person) { return convertPersonToJson(person, true); } public static String convertPersonToJson(Person person, boolean prettyPrint) { GsonBuilder builder = new GsonBuilder(); builder.serializeNulls(); if (prettyPrint) { builder.setPrettyPrinting(); } Gson gson = builder.create(); return gson.toJson(person, Person.class); } public static Person getPersonFromJson(String json) { GsonBuilder builder = new GsonBuilder(); Gson gson = builder.create(); return gson.fromJson(json, Person.class); } }
Secara default output json yang dihasilkan oleh Gson masih dalam mode compact,
namun Gson juga menyediakan opsi untuk menghasilkan output json yang lebih mudah dibaca (*disebut prettyprint).
Kemudian kita buat main class untuk mencoba perbedaan antara mode compact dan mode prettyprint.
public class AppLauncher { public static void main(String[] args) { Person person = new Person(); person.setName("Eko Suhariyadi"); person.setAge(26); person.setMessage(Arrays.asList("Uzumaki Naruto", "Uchiha Sasuke", "Hatake Kakashi", "Jackson Michael")); String jsonCompact = JsonUtil.convertPersonToJson(person, false); System.out.println("Json compact:"); System.out.println(jsonCompact); String jsonPretty = JsonUtil.convertPersonToJson(person, true); System.out.println("\nJson prettyprint:"); System.out.println(jsonPretty); Person fromJson = JsonUtil.getPersonFromJson(jsonPretty); System.out.println(fromJson); } }
Output hasil run main class tersebut adalah sebagai berikut:
Json compact:
{"name":"Eko Suhariyadi","age":26,"message":["Uzumaki Naruto","Uchiha Sasuke","Hatake Kakashi","Jackson Michael"]}
Json prettyprint:
{
"name": "Eko Suhariyadi",
"age": 26,
"message": [
"Uzumaki Naruto",
"Uchiha Sasuke",
"Hatake Kakashi",
"Jackson Michael"
]
}
name: Eko Suhariyadi
age: 26
message:
Uzumaki Naruto
Uchiha Sasuke
Hatake Kakashi
Jackson Michael
Bagaimana, sangat mudah kan !?
Selamat mencoba dan happy coding :).
Source code bisa diakses melalui akun github saya, https://github.com/ekosuhariyadi/belajar-java
Comments
Post a Comment