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

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

王林
王林앞으로
2023-04-21 12:52:173023검색

배경:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제