2013년 5월 9일 목요일

[java] java arraylist → JSON으로 변경하기

ajax 테스트하다 보니 text 형태로 값을 return 하던데 그럼 arraylist Type은?

바로 넘겨줄 수 있는 줄 알았더니 그게 아니더군..-_-;;
arraylist를 잘 표현할 수 있는 것이 xml, json이라는 지인의 말.
(혹시 다른 방법이 있다면 commnet 좀..;;)

그리하여 구글링 하다가 찾은 java arraylist를 json으로 변경하는 logic


클라이언트에서 ajax로 요청했을 때 자료를 손쉽게 파싱하기 위해서 json으로 클라이언트에 던져줄 때가 편할 때가 있습니다. 그래서 손쉽게 json으로 변환하는 라이브러리가 있습니다.

http://json-lib.sourceforge.net/

여기보면 json-lib라는 놈이 있는데 json으로 손쉽게 변환해주는 라이브러리입니다.


  • jakarta commons-lang 2.5
  • jakarta commons-beanutils 1.8.0
  • jakarta commons-collections 3.2.1
  • jakarta commons-logging 1.1.1
  • ezmorph 1.0.6
    이것들이 필요하다더군요. 위에 4개는 apache에 가면 있구요.
    ezmorph는 http://ezmorph.sourceforge.net/에 있습니다.

    사용법은 매우 간단합니다.
    [code]
    public class JsonTest {

     @Test
     public void Bean2Json()
     {
      MyBean myBean1 = new MyBean();
      myBean1.setId(1);
      myBean1.setName("mudchobo");
      MyBean myBean2 = new MyBean();
      myBean2.setId(2);
      myBean2.setName("shit");

      List<MyBean> mybeanList = new ArrayList<MyBean>();
      mybeanList.add(myBean1);
      mybeanList.add(myBean2);

      JSONArray jsonArray = JSONArray.fromObject(mybeanList);
      System.out.println("mybeanList - " + jsonArray);

      Map<String, Object> map = new HashMap<String, Object>();
      map.put("beanlist", jsonArray);

      JSONObject jsonObject = JSONObject.fromObject(map);
      System.out.println("json - " + jsonObject);
     }
    }
    [/code]
    Bean 2개를 List에 add를 한다음에 JSONArray라는 객체가 List를 배열로 만드는놈입니다.

    mybeanList - [{"id":1,"name":"mudchobo"},{"id":2,"name":"shit"}]

    이런식으로 만듭니다.
    저거를 JSONObject클래스를 이용해서 앞에 이름을 붙여줍니다. Map을 이용하면 됩니다
    Map을 이용해서 put에서 첫번째 인자에 이름을 넣고, 두번째 인자에 방금 생성한 Array를 넣으면 됩니다.
    그리고 JSONObject.fromObject메소드를 이용해서 생성하게 되면 이렇게 됩니다.

    json - {"beanlist":[{"id":1,"name":"mudchobo"},{"id":2,"name":"shit"}]}

    이상입니다-_-;


  • 출처 : http://mudchobo.tistory.com/275

    댓글 없음:

    댓글 쓰기