Hei*_*erg 2 java json coercion classcastexception jackson
我正在将 JSON 反序列化为Map<Integer, String>.
但我正在逐渐上述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();
}
}
Run Code Online (Sandbox Code Playgroud)
我java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer在try块中的第二行收到此异常。
我什至尝试改变int index = enty.getKey().intValue(). 但仍然发生相同的异常。
PS:我正在使用 Robolectric 框架的 Android 工作室中运行它。
这些键不是整数,它们是字符串。请注意它们上的引号:
String patternMetadata = "{\"1\":\"name\", \"2\":\"phone\", \"3\":\"query\"}";
// ------------------------^^-^^-----------^^-^^------------^^-^^
Run Code Online (Sandbox Code Playgroud)
如果这是 JSON(似乎是),则对象属性名称始终是字符串。
您将需要 aMap<String, String>然后您需要int明确地解析键(如果需要)。
| 归档时间: |
|
| 查看次数: |
1534 次 |
| 最近记录: |