Programming > jQuery/JavaScript

JSON 상호전환 (Javascript, Java) -객체와 문자열

Javascript 에서 JSON형식의 문자열 객체 상호 변환

Object(객체)를 Json 문자열로 변환 [JSON.stringify(obj);]

var object;

// javascript상에서 아래와 같이 사용
// " 의 경우 \" 와 같이 출력된다.
var str = JSON.stringify(object);

Json 문자열을 Object로 변환 [ JSON.parse(str);]

var str = '{"result":true, "code":"A001", "name":"hong", "arr":["a","b","c"]}';

var obj = JSON.parse(str);
obj ::
   result : true
   code : "A001"
   name : "hong"
   arr : Array[3]

JAVA 에서 객체 - JSON객체 - json문자열 상호 변환

org.json 라이브러리를 사용

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20190722</version>
</dependency>

MAP 을 JSON객체로 변환

JSONObject json = new JSONObject(map);

JSON객체를 String 문자열로 변환

JSONObject json = new JSONObject(map);
String jsonStr = json.toString();

JSON형식 문자열을 JSON객체로 변환

String str = "{\"result\":true,\"data\":[{\"gender\":false,\"name\":\"아메리카숏헤어\",\"age\":3},{\"gender\":false,\"name\":\"메인쿤\",\"age\":2}],\"message\":\"정상완료\",\"총개수\":5003}";
JSONObject jsonObj = new JSONObject(str);

JAVA 소스

public class Data {
       String name;
       int age;
       boolean gender;
      
       public Data() { }
      
       public Data(String name, int age, boolean gender) {
             this.name = name;
             this.age = age;
             this.gender = gender;
       }

       // getter & setter
       ...
       ... 중략
}

 

public class Json상호전환 {

       /**
        * @param args
        */
       public static void main(String[] args) {
            
       Map<String, Object> map = new HashMap<String, Object>();
            
             map.put("result", true);
             map.put("message", "정상완료");
             map.put("총개수", 5003);
            
       List<Data> list = new ArrayList<Data>();
             list.add(new Data("아메리카숏헤어", 3, false));
             list.add(new Data("터키시앙골라", 1, true));
             list.add(new Data("메인쿤", 2, false));
            
             map.put("data", list);
            
             // 자바 MAP 객체 => JSON 객체로 변환
       JSONObject json = new JSONObject(map);
            
             // JSON 객체 => 문자열 로 변환
       String jsonStr = json.toString();
       System.out.println(jsonStr);
             /*
             {"result":true,"data":[
                            {"gender":false,"name":"아메리카숏헤어","age":3}
                           ,{"gender":true,"name":"터키시앙골라","age":1}
                           ,{"gender":false,"name":"메인쿤","age":2}
                           ],
              "message":"정상완료","총개수":5003}
       */
            
             // java 문자열 => JSON객체로 변환
       JSONObject jsonObj = new JSONObject(jsonStr);
       System.out.println(jsonObj.toString()); // 동일한 결과
    }
}