◽ HTML & CSS & JS, jQuery

[HTML, CSS, JavaScript] JSON 가공, 파싱 (+Java)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function apitest(){
    var data = JSON.stringify({
        "id""abc3000",
        "name": {"nickname""Lee""KoreaName""이재용""US_Name""Drew"},
    });
    $.ajax({
        url :"/test/api-post",
        type : "post",
        dataType: 'json',
        processData : true,
        contentType: 'application/json;charset=utf-8',
        data : data
    })
}
cs

기본적으로 위와 같이 전송을 해야 정상적으로 우리가 알고 있는 JSON 형식으로 전송이 된다.

 

이렇게 하지 않고서 그냥 아래와 같이 해버리면 아마 서블릿단에서 고생 좀 할 것이다. 그냥 우리가 흔히 쓰는 input의 value값을 가져오는 형식인 "id=abc3000&name=nickname=~~~" 이런식으로 되기 때문에 가져온 데이터를 JSON 라이브러리로 풀어 쓰려고 하면 계속 에러가 발생할 건데, 아무튼 아래와 같이 쓰지 말고 JSON을 웹쪽이 아닌 서버쪽에서 처리를 하기 위해서는 위와 같이 써야 한다.

1
2
3
4
5
6
7
8
9
10
11
12
function apitest(){
    var data = {
        "id""abc3000",
        "name": {"nickname""Lee""KoreaName""이재용""US_Name""Drew"},
    };
 
    $.ajax({
        url :"/test/api-post",
        type : "post",
        data : data
    })
}
cs

 

<Java>

JSON 형식으로 받아왔다면, 아래와 같이 파싱 진행하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
String request = 
    {
        "id""abc3000",
        "name": {"nickname""Lee""KoreaName""이름""US_Name""Drew"},
    }
 
JSONObject jObject = new JSONObject(requset);
String deviceId = (String) jObject.get("id"); // deviceId = "abc3000"
 
JSONObject jsonObject_name = (JSONObject) jObject.get("name");
String nickname = jsonObject_name.get("nickname"); // nickname = "Lee"
String KoreaName= jsonObject_name.get("KoreaName"); // KoreaName = "이름"
cs

푸터바