Я десериализую JSON в Map<Integer, String>
.Как вы разбираете ключи объекта JSON как целые числа с Джексоном?
Но я получаю вышеуказанное classCastException, если пытаюсь назначить key
примитиву int
.
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();
}
}
Я получаю эту java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
исключение на второй строке в try
блоке.
Я даже попытался сменить int index = enty.getKey().intValue()
. Но все же происходит одно и то же исключение.
P.S .: Я запускаю его в студии Android с использованием Robolectric framework.
свойства JSON являются * никогда * 'int' значения; они всегда * строки. Я подозреваю, что вам нужно просто разобрать строку ... –