GSON, RestTemplate

courage331·2021년 4월 15일
0

GSON, RestTemplate,

RestTemplate

getForObject : 주어진 url 주소로 http get 방식으로 객체로 결과를 반환받는다.

getForEntity: 주어진 url 주소로 http get 방식으로 결과는 ResponseEntity로 반환받는다.

GSON

직렬화란 객체를 전송가능한 형태로 말아주는걸 의미하고 역직렬화란 그 데이터들을 다시 자바 객체로 변환해주는 것으로 이해하시면 됩니다.

GSON 라이브러리는 Java Object를 JSON으로 또는, JSON을 Java Object로의 직렬화, 역질렬화를 도와주는 라이브러리입니다.

json의 key이름이 class의 변수 이름과 동일해야 한다.

한글이름일때를 대비하여 SerializedName을 사용한다.

@SerialzedName
JSON으로 serialize 될 때 매칭되는 이름을 명시하는 목적으로 사용되는 field 마킹 어노테이션이다.

@Expose
object 중 해당 값이 null일 경우, json으로 만들 필드를 자동 생략해 준다.

직렬화

  • 자바 객체를 JSON으로 직렬화

역직렬화

  • JSON을 자바 객체로 역직렬화

자바에서 직렬화와 역직렬화는 객체를 파일로 저장하거나 네트워크를 통해 전송하기 위해 제공되는 기능이다.
객체는 '인스턴스 변수의 집합'이므로 객체를 저장/전송하는 것은 객체의 인스턴스 변수의 값을 저장/전송하는 것과 동일하다.

궁극적으로 객체의 직렬화는 서드파티에서 객체를 사용하기 위한 것이다.

gson.fromJson()

-JSON 형식의 데이터를 지정한 타입의 데이터로 변환합니다.

gson.toJson()

-지정된 타입의 데이터를 JSON 형식의 데이터로 변환합니다.

ex) ————————————————


// MAP -> JSON 예제 -> 직렬화
String jsonStr = gsonObj.toJson(inputMap);
System.out.println("MAP -> JSON 예제 : " + jsonStr);

// JSON -> MAP 예제 역직렬화
Map map = gsonObj.fromJson(jsonStr, Map.class);
System.out.println("JSON -> MAP 예제 : " + map.toString());


    RestTemplate restTemplate = new RestTemplate();

    @Autowired
    private Gson gson;
    
    String url = "https://"+hosting_mall_id+".cafe24api.com/api/v2/admin/products/"+product_no+"/carts";
    HttpHeaders httpHeaders = new HttpHeaders()
    String authorization = "Bearer " + AccessToken;
    httpHeaders.add("Authorization", authorization);
            
    final HttpEntity<String> entity = new HttpEntity(httpHeaders);
    ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
    
    Cafe24Cart cafe24Cart = gson.fromJson(response.getBody(),Cafe24Cart.class);
            
profile
하루하루는 성실하게 인생 전체는 되는대로

0개의 댓글