마니의 공부방/Java

[java] JsonAraay null 입력

Array가 null이거나 비워보내면 되지, 뭐....

간혹 API 문서에 {"items": [null]} 로 샘플데이터가 입력된 경우가 있다.

list가 비어있는 경우에 대하여, 데이터 수신하는곳에서 어떻게 처리하느냐에 따라 그에 맞추어 개발하면 되는데 

일반적으로 list가 비었으면 [] 처럼 비어있는 list를 보내거나, null Object로 대체 하는 경우가 많기는 하다.

 

비어있는 list data를 [null] 로 보내야 하는 경우

그런데 list안에 null을 딱하니 적어서 처리하는 경우도 있더라구요.

이외에도 여러 방법들이 있겠지만, 이전에 했던 프로젝트에서 아래와 같이 처리하는 경우가 있어 공유해봅니다.

 

항상 프로그램 작성에 정답은 없다는걸 기억하면서.. 도움이 되길 바랍니다.

package web;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

public class Test {

  public static void main(String[] args) {
    JSONObject obj = new JSONObject();
    JSONArray jsonArr1 = new JSONArray();
    obj.put("items", jsonArr1);
    System.out.println("1. 빈 배열로 전달 :: " + obj.toString());
    //** 그냥 생성된 jsonArray를 넣으면, [] 빈 배열로 전달
    
    jsonArr1.add(null);
    obj.put("items", jsonArr1);
    System.out.println("2. 배열에 null 포함하여 전달 :: " + obj.toString());
    //** 생성된 jsonArray를 null을 넣으면, [null]로 전달
    // 위 방법말고도 jsonObject에 빈 배열인 경우 null을 포함시키는 방법은 여러개 있는것 같습니다.
    // 최종 api를 수신하는 쪽에서 null을 어떻게 처리하냐가 요점이겠지만
    // 무엇보다 발행된 API문서에 맞추어 작업하는것이 좋을것으로 사료됩니다.
  }
}

===== 결과 =====
1. 빈 배열로 전달 :: {"items":[]} 
2. 배열에 null 포함하여 전달 :: {"items":[null]}