> Java > java지도 시간 > Java에서 HashMap과 String을 어떻게 변환하나요?

Java에서 HashMap과 String을 어떻게 변환하나요?

王林
풀어 주다: 2023-04-21 12:52:17
앞으로
3105명이 탐색했습니다.

배경:

HashMap을 Json 형식의 문자열로 변환해야 할 때 HashMap의 toString() 메서드를 사용하지 마세요. HashMap을 문자열로 변환하려면 FastJson/Gson을 사용해야 합니다. 변환을 위해 toString() 메서드를 사용하는 경우 문자열을 HashMap으로 변환할 수 없습니다. 직렬화 오류만 표시됩니다.

Java에서 HashMap과 String을 어떻게 변환하나요?

데모 코드:

        HashMap<String, String> dataMap = new HashMap<>(4);
        dataMap.put("key1", "value1");
        dataMap.put("key2", "value2");
        dataMap.put("key3", "value3");
        dataMap.put("key4", "value4");

        String byToString = dataMap.toString();
        String byJSONString = JSON.toJSONString(dataMap);
        System.out.println(byToString);
        System.out.println(byJSONString);

        HashMap<String ,String> hashMap = JSON.parseObject(byJSONString, HashMap.class);
        HashMap<String ,String> hashMap2 = JSON.parseObject(byToString, HashMap.class);
로그인 후 복사

log:

{key1=value1, key2=value2, key3=value3, key4=value4}
{"key1":"value1","key2":"value2","key3":"value3","key4":"value4"}
로그인 후 복사

Java에서 HashMap과 String을 어떻게 변환하나요?

디버그를 통해 볼 수 있는 추가 실행:

Java에서 HashMap과 String을 어떻게 변환하나요?

FastJson을 통해 문자열을 HashMap으로 변환하여 문자열로 변환할 수 있습니다. 하지만 toString 변환을 통해 직렬화 오류가 보고됩니다.

이유:

HashMap toString 소스 코드:

Java에서 HashMap과 String을 어떻게 변환하나요?

HashMap은 기본 클래스의 toString 메소드를 다시 작성하여 for 루프를 통해 =로 연결하고 출력합니다. JSON 문자열 형식.

JSON.toJSONString(객체 객체) 소스 코드:

Java에서 HashMap과 String을 어떻게 변환하나요?

FastJson은 toJSONString 메서드를 통해 Object 객체를 Json 형식 문자열로 변환할 수 있습니다. 반대로 Json 문자열은 원본 객체를 통해 JSON 문자열로 변환할 수 있습니다. .

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

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿