HashMap을 Json 형식의 문자열로 변환해야 할 때 HashMap의 toString() 메서드를 사용하지 마세요. HashMap을 문자열로 변환하려면 FastJson/Gson을 사용해야 합니다. 변환을 위해 toString() 메서드를 사용하는 경우 문자열을 HashMap으로 변환할 수 없습니다. 직렬화 오류만 표시됩니다.
데모 코드:
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"}
디버그를 통해 볼 수 있는 추가 실행:
FastJson을 통해 문자열을 HashMap으로 변환하여 문자열로 변환할 수 있습니다. 하지만 toString 변환을 통해 직렬화 오류가 보고됩니다.
HashMap toString 소스 코드:
HashMap은 기본 클래스의 toString 메소드를 다시 작성하여 for 루프를 통해 =로 연결하고 출력합니다. JSON 문자열 형식.
JSON.toJSONString(객체 객체) 소스 코드:
FastJson은 toJSONString 메서드를 통해 Object 객체를 Json 형식 문자열로 변환할 수 있습니다. 반대로 Json 문자열은 원본 객체를 통해 JSON 문자열로 변환할 수 있습니다. .
위 내용은 Java에서 HashMap과 String을 어떻게 변환하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!