반응형
gson library의 JsonOjbect 사용법을 정리한다.
gson library 추가(eclipse)는 아래 link를 참조한다.
gson의 JsonObject는 아래와 같이 import하여 사용한다.
import com.google.gson.JsonObject;
기존 java의 JSONObject와는 다르게 key, value를 추가할 경우에는 addProperty를 사용한다.
첫번째 사용법
get을 이용하여 value를 가져오는 것이다.
obj.get("키값")을 통해 value를 얻어 올 수 있으며, String 형태로 변환하는 경우에는 getAsString()을 사용한다.
두번째 및 세번째 방법
JsonObject를 HashMap으로 변환하는 과정과, 변환한 HashMap을 통해 value를 가져오는 방법이다.
HashMap은 아래와 같이 import하여 사용한다.
import java.util.HashMap;
HashMap memory를 할당하고 gson library의 fromJson을 이용하여 정의한 HashMap형태로 변환할 수 있다.
map.get("키값")을 통해 value를 접근할 수 있다.
세번째 방법과 같이 fromJson("JsonObject의 String 값", "HashMap memory 할당 및 class type") 과정을 한줄로 표현 할 수 있다.
test code는 아래와 같다.
package hello;
import java.util.HashMap;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
public class test {
public static void main(String[] args)
{
JsonObject obj = new JsonObject();
obj.addProperty("first", "apple");
obj.addProperty("second", "banana");
System.out.println("JsonObject: "+ obj + "\n");
System.out.println("1. get value from JsonObject");
System.out.println("first: "+ obj.get("first").getAsString());
System.out.println("second: "+ obj.get("second").getAsString() + "\n");
System.out.println("2. get value from HashMap");
HashMap<String, String> map = new HashMap<String, String>();
Gson gson = new Gson();
map = gson.fromJson(obj.toString(), map.getClass());
System.out.println("first: "+ map.get("first"));
System.out.println("second: "+ map.get("second") + "\n");
System.out.println("3. get value from HashMap2");
HashMap<String, String> map2 = gson.fromJson(obj.toString(), new HashMap<String, String>().getClass());
System.out.println("first: "+ map2.get("first"));
System.out.println("second: "+ map2.get("second") + "\n");
}
}
JsonObject를 Map으로 변환은 위와 같이 되었으니, 전체 key와 value를 접근하고자 하는 경우에는 entrySet 또는 iterator로 가능하다. 이와 관련된 글은 아래를 참조한다.
반응형
'gson' 카테고리의 다른 글
[gson] JsonObject 데이터 추가 (0) | 2021.06.30 |
---|---|
[gson] JsonArray 사용법 (0) | 2021.01.22 |
[gson] JsonObject 형태 파일 읽기 (JsonReader) (0) | 2020.12.27 |
[gson] JsonParser 사용법 (0) | 2020.12.23 |
[gson] string을 jsonObject로 변경 (0) | 2020.12.15 |
댓글