code: public JsonObject put(final String name, final Object value) {
          if (this == value) {
              throw new IllegalArgumentException("Cannot put self");
          } else if (value == JsonValue.NULL) {
              putNull(name);
          } else if (checkType(value)) {
              content.put(name, value);
          } else {
              throw new IllegalArgumentException("Unsupported type for JsonObject: " + value.getClass());
          }
          return this;
      }
docs: Stores a {@link Object} value identified by the field name.
  
  Note that the value is checked and a {@link IllegalArgumentException} is thrown if not supported.
  
  @param name the name of the JSON field.
  @param value the value of the JSON field.
  @return the {@link JsonObject}.