보통 API 통신을 할떄 json 형식을 많이 쓰고, 클래스에 serialize를 이용하여 통신을 한다.
하지만, JsonObject를 생성하여 바로바로 key와 value를 넣고 통신해야 할 때도 있다.
그 경우는,
- 자식-자식-자식... 이렇게 depth가 많아, 클래스를 만드는게 배보다 배꼽이 큰 경우
- 통신 횟수가 몇번 되지 않거나 중요도가 낮아 클래스를 만들기 애매한 경우
- 보내야 하는 내용들이 유동적으로 자주 바뀌는 경우
등등. 나의 경우 1, 3번에 해당이 되었고, 따라서 JSONObject 를 통해 바로 key value를 생성하였다.
그러나 통신시 통신 오류 문제가 발생했고, 로그를 확인해 보니 NameValuePairs 라는 항목이 json 에
붙어 있었다.
검색을 해보니, org.json.JSONObject. 를 사용하는 JSONObject를 사용할때 발생하는 문제로, 내부에 NameValuePairs 라는 변수가 있고, 이를 통해 key, value를 json을 생성하면서 발생한 문제였다.
com.google.gson.JsonObject 에 있는 JsonObject 를 사용하면 된다고 한다. 이를 사용하니 해결이 되었다.
1. JsonObject 사용법
import com.google.gson.JsonObject
...
var 변수명 = JsonObject()
var 변수명1 = JsonObject()
//단순히 키-밸류일 경우
변수명.addProperty("키값","벨류값")
//JsonObject를 자식으로 넣을경우
변수명.add("키값",변수명1)
'Android' 카테고리의 다른 글
| 부모뷰 영역을 넘어 자식뷰를 그리는법 Clipchildren 그리고 한계 (0) | 2023.03.08 |
|---|---|
| UseCase (0) | 2023.01.26 |
| 안드로이드 전반적 개발 패턴, 구조 (feat repository) (0) | 2023.01.26 |
| SharedPreference (0) | 2023.01.26 |
| ViewModel 생성법 2가지 (0) | 2023.01.26 |