>  기사  >  Java  >  Java에서 JSON 문자열을 HashMap으로 어떻게 변환할 수 있나요?

Java에서 JSON 문자열을 HashMap으로 어떻게 변환할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-11 22:45:03137검색

How can I convert a JSON String to a HashMap in Java?

JSON 문자열을 Java에서 HashMap으로 변환

Java에서는 구조화되고 액세스 가능한 데이터 형식으로 JSON 데이터를 저장해야 하는 시나리오가 발생할 수 있습니다. 이에 대한 편리한 옵션 중 하나는 키를 해당 값에 매핑할 수 있는 HashMap을 사용하는 것입니다.

JSON 문자열을 HashMap으로 변환하려면 org.json 라이브러리를 활용할 수 있습니다. 다음은 프로세스를 재귀적으로 보여주는 샘플 코드 조각입니다.

public static Map<String, Object> jsonToMap(JSONObject json) throws JSONException {
    Map<String, Object> retMap = new HashMap<>();
    
    if(json != JSONObject.NULL) {
        retMap = toMap(json);
    }
    return retMap;
}

public static Map<String, Object> toMap(JSONObject object) throws JSONException {
    Map<String, Object> map = new HashMap<>();

    Iterator<String> keysItr = object.keys();
    while(keysItr.hasNext()) {
        String key = keysItr.next();
        Object value = object.get(key);
        
        if(value instanceof JSONArray) {
            value = toList((JSONArray) value);
        }
        
        else if(value instanceof JSONObject) {
            value = toMap((JSONObject) value);
        }
        map.put(key, value);
    }
    return map;
}

public static List<Object> toList(JSONArray array) throws JSONException {
    List<Object> list = new ArrayList<>();
    for(int i = 0; i < array.length(); i++) {
        Object value = array.get(i);
        if(value instanceof JSONArray) {
            value = toList((JSONArray) value);
        }

        else if(value instanceof JSONObject) {
            value = toMap((JSONObject) value);
        }
        list.add(value);
    }
    return list;
}

이 코드에서 jsonToMap 메서드는 retMap이라는 HashMap을 초기화하고 입력 JSONObject가 null이 아닌지 확인합니다. null이 아닌 경우 재귀 toMap 메서드를 호출하여 JSONObject를 HashMap으로 변환합니다.

toMap 메서드는 JSONObject의 키를 반복하여 해당 값을 추출합니다. 중첩된 JSON 개체와 배열을 재귀적으로 처리하여 전체 JSON 구조를 HashMap으로 효과적으로 변환합니다.

또는 비재귀적 접근 방식을 선호하고 Jackson 라이브러리로 작업하는 경우 다음 코드를 사용할 수 있습니다.

import com.fasterxml.jackson.databind.ObjectMapper;

Map<String, Object> mapping = new ObjectMapper().readValue(jsonStr, HashMap.class);

이 접근 방식은 JSON 문자열을 원하는 Java 객체로 직접 구문 분석할 수 있는 Jackson 라이브러리의 ObjectMapper 클래스를 활용하여 변환 프로세스를 단순화합니다.

이러한 기술을 구현하면 JSON 문자열을 효과적으로 변환할 수 있습니다. Java의 HashMaps로 변환하여 JSON 데이터를 저장하고 관리하기 위한 유연하고 효율적인 데이터 구조를 제공합니다.

위 내용은 Java에서 JSON 문자열을 HashMap으로 어떻게 변환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.