본문 바로가기

Java의 정석

Gson

Gson을 이용한 json 형식 다루기

package json;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import json.resource.JsonResource;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class GsonExample {
    public static void main(String[] args) {

        Gson gson = new Gson();

        // bossJson - Json Array 형태의 String
        JsonResource jsonResource = new JsonResource();
        String bossJson = jsonResource.bossJson;
        String user = jsonResource.user;

        // fromJson - reader로 읽든 string으로 읽든 뒤에 지정된 클래스의 객체로 역직렬화  
        /*Json String -> Json Array*/
        JsonArray jsonArray = gson.fromJson(bossJson, JsonArray.class);

        System.out.println(jsonArray.getClass().getName()); //com.google.gson.JsonArray
        System.out.println(jsonArray);

        /*Json String -> Java ArrayList*/
        List<Map<String, Object>> map = new ArrayList<>();
        map = gson.fromJson(bossJson, ArrayList.class);

        System.out.println(map.getClass().getName()); //java.util.ArrayList
        System.out.println(map);

        /*Json String -> Json Object*/
        JsonObject jsonObject = gson.fromJson(user, JsonObject.class);

        System.out.println(jsonObject.getClass().getName()); //com.google.gson.JsonObject
        System.out.println(jsonObject);

        /*Json String -> Java HashMap*/
        Map<String, Object> map1 = new HashMap<>();
        map1 = gson.fromJson(user, HashMap.class);

        System.out.println(map1.getClass().getName()); //java.util.HashMap
        System.out.println(map1);

        /*Json Object or Json Array에서 Java Object로 변환 시 string으로 변환 후
         * 진행하는 편*/

    }
}

 

https://github.com/Donghyeob/basic-java/blob/main/json/GsonExample.java

 

GitHub - Donghyeob/basic-java: basic-java

basic-java. Contribute to Donghyeob/basic-java development by creating an account on GitHub.

github.com

 

'Java의 정석' 카테고리의 다른 글

Overflow  (0) 2022.02.23
Variable, Constant, Literal  (0) 2022.02.22
ReferenceType  (0) 2022.02.18
PrimitiveType  (0) 2022.02.17
Jackson  (0) 2022.02.15