개인적인 정리

java 에서 json 데이타 받는 방법의 하나의 예 본문

전자정부표준프레임워크

java 에서 json 데이타 받는 방법의 하나의 예

yeon.Biju 2018. 7. 11. 10:43

java에서 json 데이타를 받는 방법중 한가지를 정리해본다.

이클립스와 postman을 이용해서 개발중이다.



1. 자바로 넘겨주는 데이타 형태


{

    "aaaaa": "A6JGa+3/ROpgSsKZ5pUwjlG0bZ0Yp+Km1CAn4MhtzMg=",

    "bbbb": "21",

    "items": [

        {

            "cccc": "이름1",

            "dddd": "핸드폰1"

        },

{

            "cccc": "이름2",

            "dddd": "핸드폰2"

        },

{

            "cccc": "이름3",

            "dddd": "핸드폰3"

        },

{

            "cccc": "이름4",

            "dddd": "핸드폰4"

        },

{

            "cccc": "이름5",

            "dddd": "핸드폰5"

        }

        

    ]


}



이 데이타를 postman을 통해 아래와 같이 넘겨준다.





2.  자바에서 받을 때.


public ModelAndView aaaaaaaaaaa(@RequestBody String body) throws Exception {

....

}


형태로 받아서 




JSONParser jsonParser = new JSONParser();

JSONObject jsonObj = (JSONObject)jsonParser.parse(body);


String aaaaa = (String) jsonObj.get("aaaaa");

String bbbb = (String) jsonObj.get("bbbb");




JSONArray jsonArr = (JSONArray) jsonObj.get("items");



for(int i=0;i<jsonArr.size();i++){


JSONObject jsonObj2 = (JSONObject)jsonArr.get(i);


String cccc = (String)jsonObj2.get("cccc");

String dddd = (String)jsonObj2.get("dddd");

}


위와 같이 해서 받았다.




3. import 되는 라이브러리를 조심해서 써야 하는 것 같다. 

아래 것이 아닐 경우 


import org.json.simple.JSONArray;

import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;


아래와 같은 오류가 발생.( 작업하고 나서 확인하면 당연한 얘기지만 JSONObject을 처음써보다 보니 ;;;;;)


org.json.simple.JSONObject cannot be cast to org.codehaus.jettison.json.JSONObject



이렇게 해서 사용함. 


2018.07.11




LG전자 그램16 노트북 16ZD90P-GX50K (i5-1135G7 40.6cm), 미포함, NVMe 256GB, 8GB LG전자 2020 그램15 노트북 15ZD90N-VX50K (i5-1035G7 39.6cm), 256GB, 8GB, Free DOS LG전자 10세대 코어i7 윈10탑재 17형 LG 그램 2020년형 17Z90N 그레이 정품키스킨 증정, 16GB, SSD 512GB, 포함 LG전자 2021 그램17 노트북 옵시디안블랙 17ZD90P-GX5BK (i5-1135G7 43.1cm), 미포함, NVMe 256GB, 8GB LG전자 그램17 노트북 스노우 화이트 17ZD90P-GX50K (i5-1135G7 43.1cm), 미포함, NVMe 256GB, 8GB [예약판매] LG 그램 16인치 2021 노트북 16Z90P-GA56K 11세대 인텔i5 웹캠 대화면 가벼운 노트북 윈도우10
Comments