[android] JSON 을 예쁘게 로그에 표시하기

JSON 타입을 매우 많이 사용하는데, 로그를 찍을 때 한 줄로만 찍으니 보기가 힘들 때가 있다.

불편해도 그냥 참고 사용했는데, 다른 방법이 있나 싶어서 찾아봤더니 쉽고 간편한 방법이 있었다.

출처: https://www.mkyong.com/java/how-to-enable-pretty-print-json-output-gson/

 

public class MyBean {
  public String name;
  public int type;
  public long createdAt;
  public Date date;
  public ArrayList<String> strs = new ArrayList<>();
  public int[] integers = {11, 12, 222};

  public void temp() {
    name = "name 이름";
    type = 23;
    createdAt = System.currentTimeMillis();
    date = new Date();
    strs.add("11");
    strs.add("12");
    strs.add("13");
  }

  public String toJson() {
    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    return gson.toJson(this);
  }
}

 

이렇게 호출하면

MyBean myBean = new MyBean();
myBean.temp();
Log.i("###", "|" + myBean.toJson());

 

 

이렇게 표시된다.

{
  "createdAt": 1500817386292,
  "date": "Jul 23, 2017 10:43:06 PM",
  "integers": [
    11,
    12,
    222
  ],
  "name": "name 이름",
  "strs": [
    "11",
    "12",
    "13"
  ],
  "type": 23
}

 

gradle 에는 이렇게 추가한다. (최신 버전은 https://mvnrepository.com/artifact/com.google.code.gson/gson 에 있다)

compile 'com.google.code.gson:gson:2.8.1'