web developer

[java] JSON 데이터 파싱 본문

Language/Java

[java] JSON 데이터 파싱

trueman 2024. 9. 10. 17:57
728x90
728x90

JSON 데이터 파싱


userInfoData JSON에서 information 배열 안의 Subject 객체에서 privacy 배열의 value 값을 가져오는 방법을 org.json.simple 라이브러리를 사용하여 구현할 수 있습니다

json
userInfoData :{
    "url":["https://localhost:8080/test"],
    "id":"testId",
    "physical":{"height":"180", "weight":"80"},
    "gender":["man", "woman"],
    "information":[
        {
            "url":["https://localhost:8080/test"],
            "language":"KR",
            "Subject":{
                "id":"testId",
                "privacy":[{
                    "type":"name",
                    "value":"테스트이름" 
                }]
            },
            "generation":{
                "created":"2024-09-02T13:53:26",
                "creator":"secretId"
            },
            "type":["1", "2"],
        }
    ]
}

 

java 
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

@RequestMapping(value = "/testJsonDataParsing.do", method = RequestMethod.GET)
public void testJsonDataParsing(
    HttpServletRequest request,
    HttpServletResponse response,
    HttpSession session
){
    String userInfoData = "{"
            + "\"url\":[\"https://localhost:8080/test\"],"
            + "\"id\":\"testId\","
            + "\"physical\":{\"height\":\"180\", \"weight\":\"80\"},"
            + "\"gender\":[\"man\", \"woman\"],"
            + "\"information\":[{"
            + "\"url\":[\"https://localhost:8080/test\"],"
            + "\"language\":\"KR\","
            + "\"Subject\":{"
            + "\"id\":\"testId\","
            + "\"privacy\":[{"
            + "\"type\":\"name\","
            + "\"value\":\"테스트이름\""
            + "}]"
            + "},"
            + "\"generation\":{"
            + "\"created\":\"2024-09-02T13:53:26\","
            + "\"creator\":\"secretId\""
            + "},"
            + "\"type\":[\"1\", \"2\"]"
            + "}]"
            + "}";

    // JSON 파서 객체 생성
    JSONParser parser = new JSONParser();
    try {
        // userInfoData를 JSON 객체로 변환
        JSONObject jsonObj = (JSONObject) parser.parse(userInfoData);

        // information 배열 가져오기
        JSONArray informationArray = (JSONArray) jsonObj.get("information");

        // 첫 번째 객체에서 Subject 가져오기
        JSONObject subject = (JSONObject) ((JSONObject) informationArray.get(0)).get("Subject");

        // privacy 배열에서 첫 번째 객체의 value 값 가져오기
        JSONArray privacyArray = (JSONArray) subject.get("privacy");
        String privacyValue = (String) ((JSONObject) privacyArray.get(0)).get("value");
        System.out.println("privacy value: " + privacyValue); // 테스트이름

    } catch (ParseException e) {
        e.printStackTrace();
    }
}

[배열, json 객체, json 비교]
https://take-it-into-account.tistory.com/256

 

[javaScript] 배열, json 객체, json 비교

배열 let arr = []; arr = [1, 3, 5, 7, 9]; // 배열에 값 할당 console.log(arr); // [1, 3, 5, 7, 9] 배열은 순서가 있는 값으로, 그 순서는 인덱스로 구성이 되어있습니다. (번호는 0부터 매김) 그 값들은 요소(element)

take-it-into-account.tistory.com

[JSON 데이터 만들기]
https://take-it-into-account.tistory.com/222

 

[java] JSON 데이터를 controller에서 생성하여 jsp로 데이터 가져오기

JSON 데이터 controller(java단)에서 만들어 jsp에 JSON 데이터 보내기 POM.xml에 depencency 추가 com.googlecode.json-simple json-simple 1.1 modelandView로 가져오기 import org.json.simple.JSONObject; import org.json.simple.JSONArray; @Re

take-it-into-account.tistory.com


참조 : https://frozenpond.tistory.com/81

728x90
728x90