JSON을 Map<Integer, String>
으로 역 직렬화합니다.JSON 객체 키를 Jackson과 어떻게 정수로 파싱합니까?
key
을 프리미티브 int
에 할당하려고하면 위의 classCastException이 발생합니다.
ObjectReader reader = new ObjectMapper().reader(Map.class);
String patternMetadata = "{\"1\":\"name\", \"2\":\"phone\", \"3\":\"query\"}";
Map<Integer, String> map = reader.readValue(patternMetadata);
System.out.println("map: " + map);
for (Map.Entry<Integer, String> entry : map.entrySet())
{
try
{
System.out.println("map: " + entry.getKey());
int index = entry.getKey();
System.out.println("map**: " + index);
}
catch (Exception e)
{
e.printStackTrace();
}
}
나는 try
블록에서 두 번째 행에서이 java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
예외를 얻고있다.
심지어 변경하려고 시도했습니다 int index = enty.getKey().intValue()
. 그러나 여전히 같은 예외가 발생합니다.
P .: Robolectric 프레임 워크를 사용하여 Android 스튜디오에서 실행하고 있습니다.
JSON 속성은 * 결코 *'int' 값입니다; 그들은 항상 * 문자열입니다. 나는 당신이 문자열을 구문 분석해야한다고 생각합니다 ... –