JsonObject -> 객체 변환
Gson 라이브러리는 json으로 받은 데이터를 내가 만든 객체에 자동으로 set 해주는 기능을 제공한다. 먼저 간단한 JsonObject 형태의 json을 객체로 변환해보자.
Member.java
package com.tistory.jekalmin;
public class Member {
private String id;
private String name;
private int age;
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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 String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Member [id=" + id + ", name=" + name + ", age=" + age
+ ", address=" + address + "]";
}
}
GsonTest.java
package com.tistory.jekalmin;
import com.google.gson.Gson;
public class GsonTest {
public static void main(String[] args) {
Gson gson = new Gson();
String jsonString = "{'id':'jekalmin','name':'Min','age':26,'address':'Seoul'}";
System.out.println(gson.fromJson(jsonString, Member.class));
}
}
결과는 다음과 같다.
Member [id=jekalmin, name=Min, age=26, address=Seoul]
JsonArray -> List 변환
이번엔 조금더 까다로운 JsonList를 List로 변환해보자. Member.java 클래스는 동일하다.
GsonTest.java
package com.tistory.jekalmin;
import java.util.Arrays;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class GsonTest {
public static void main(String[] args) {
Gson gson = new Gson();
String jsonString = "[{'id':'jekalmin','name':'Min','age':26,'address':'Seoul'},{'id':'park','name':'park','age':27,'address':'Seoul'},{'id':'kim','name':'kim','age':28,'address':'Incheon'}]";
// 방법1
Member[] array = gson.fromJson(jsonString, Member[].class);
List<Member> list = Arrays.asList(array);
// 방법2
List<Member> list2 = gson.fromJson(jsonString, new TypeToken<List<Member>>(){}.getType());
System.out.println(list);
System.out.println(list2);
}
}
두 방법의 결과는 같은 것을 알 수 있다.
[Member [id=jekalmin, name=Min, age=26, address=Seoul], Member [id=park, name=park, age=27, address=Seoul], Member [id=kim, name=kim, age=28, address=Incheon]]
[Member [id=jekalmin, name=Min, age=26, address=Seoul], Member [id=park, name=park, age=27, address=Seoul], Member [id=kim, name=kim, age=28, address=Incheon]]
방법은 두가지 중에 아무거나 사용해도 될 것 같다.
자바 리터럴의 개념 (0) | 2023.04.13 |
---|---|
자바 List를 String[]로 변환 방법 (0) | 2019.08.22 |
소켓 프로그래밍 1 (0) | 2019.08.16 |
URL ( Uniform Resource Location ), URLConnection (0) | 2019.08.16 |
자바에서의 네트워크 프로그래밍(InetAddress) (0) | 2019.07.28 |
댓글 영역