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
ブロックに2行目に、このjava.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
例外を取得しています。
私はさらにint index = enty.getKey().intValue()
を変更しようとしました。しかし、同じ例外が発生します。
P .: Robolectricフレームワークを使用してAndroidスタジオで実行しています。
JSON特性は*決して* 'int'値です。彼らは常に*文字列です。私はあなたがちょうど文字列を解析する必要があると思う... –