본문 바로가기
gson

[gson] JsonObject value 가져오기

by hong0 2020. 12. 22.
반응형

gson library의 JsonOjbect 사용법을 정리한다.

 

gson library 추가(eclipse)는 아래 link를 참조한다.

hong00.tistory.com/40

 

[개발환경] gson 추가하기 (eclipse)

gson은 구글에서 만든 라이브러리로 JSON의 자바 오브젝트를 상호변환하는데 유용한 오픈소스 라이브러리이다. gson은 아래 link에서 버전별로 download 받을 수 있다. repo1.maven.org/maven2/com/google/code/gs..

hong00.tistory.com

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로 가능하다. 이와 관련된 글은 아래를 참조한다.

hong00.tistory.com/31

 

[java] ConcurrentHashMap iterator

java의 concurrentHashMap 사용법. entrySet을 이용하여 key, value를 가져올 수 있다. 첫번째 사용법: entrySet과 for loop로 접근 import java.util.concurrent.ConcurrentHashMap; public class ConcurrentHash..

hong00.tistory.com

 

반응형

'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

댓글