code: public JSONObject putOpt(Enum<?> key, Object value) throws JSONException {
  		return putOpt(key.name(), value);
  	}
docs: Put a key/value pair in the JSONObject, but only if the key and the value
  are both non-null.
  
  @param key
  A key string.
  @param value
  An object which is the value. It should be of one of these types:
  Boolean, Double, Integer, JSONArray, JSONObject, Long, String, or
  the JSONObject.NULL object.
  @return this.
  @throws JSONException
  If the value is a non-finite number.