I didn't see your last comment before I posted. I think we're agreeing!
JSONObject implements Map, right? http://json-lib.sourceforge.net/apidocs/jdk15/net/sf/json/JSONObject.html#put(java.lang.Object,...
But aren't Map.put implementations are supposed to do that? https://docs.oracle....