JsonHash extends LinkedHashMap<String, Object> { @Override public Object remove(Object obj) { stateMap.remove(obj); return super.remove(obj); }  static JsonHash fromString(String json); static JsonHash fromParser(JsonPullParser parser); void toJson(Writer writer); @Override void clear(); @Override Object clone(); @Deprecated State getState(String key); Type getType(String key); Boolean getBooleanOrNull(String key); String getStringOrNull(String key); Long getLongOrNull(String key); Double getDoubleOrNull(String key); JsonHash getJsonHashOrNull(String key); JsonArray getJsonArrayOrNull(String key); @Deprecated Object put(String key, Object value, State state); Object put(String key, Object value, Type type); Object put(String key, String value); Object put(String key, Boolean value); Object put(String key, Double value); Object put(String key, Float value); Object put(String key, Byte value); Object put(String key, Short value); Object put(String key, Integer value); Object put(String key, Long value); Object put(String key, JsonArray value); Object put(String key, JsonHash value); @Override Object put(String key, Object value); @Override void putAll(Map<? extends String, ? extends Object> map); @Override Object remove(Object obj); @Override boolean equals(Object obj); @Override String toString();  }
@Test public void remove() { JsonHash jsonHash = new JsonHash(); jsonHash.put("key", "hoge"); assertThat(jsonHash.getType("key"), is(Type.STRING)); jsonHash.remove("key"); assertThat(jsonHash.getType("key"), nullValue()); }