Map を JSON 文字列に変換して戻すテスト コードの小さなサンプルがあります。JSON 文字列からの解析中に、結果のマップに整数キー「1」ではなく文字列キー「1」が含まれるため、テストが失敗します。このマップのキーとして使用される POJO でも同じことが起こります。この動作は予期されたものですか? それとも、JSON コンバーターの構成を省略したのでしょうか?
public class SampleConverterTest {
@Test
public void testIntegerKey() {
// Register an Integer converter
JSON.registerConvertor(Integer.class, new JSONPojoConvertor(Integer.class));
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "sample");
// Convert to JSON
String msg = JSON.toString(map);
// Retrieve original map from JSON
@SuppressWarnings("unchecked")
Map<Integer, String> obj = (Map<Integer, String>) JSON.parse(msg);
assertTrue(obj.containsKey(1));
}
}
jetty-util 7.6.10.v20130312 を使用しています