code: public final IJSONSerializable<?> fromString(String string, final boolean validate)
      {
          if (null == (string = StringOps.toTrimOrNull(string)))
          {
              return null;
          }
          final JSONValue value = JSONParser.parseStrict(string);
  
          if (null == value)
          {
              return null;
          }
          final JSONObject json = value.isObject();
  
          if (null == json)
          {
              return null;
          }
          try
          {
              final ValidationContext ctx = new ValidationContext();
  
              ctx.setValidate(validate);
  
              ctx.setStopOnError(true); // bail if an error is encountered
  
              return fromJSON(json, ctx);
          }
          catch (final ValidationException e)
          {
              return null;
          }
      }
docs: Parses the JSON string and returns the IJSONSerializable.
  If validate is true, it will attempt to validate the attributes and types of child nodes etc.
  If validate is false, it assumes the JSON string is correct
  (this is a little faster.)
  
  @param string JSON string as produced by {@link IJSONSerializable#toJSONString()}
  @param validate Whether to validate the attributes and child node types
  @return IJSONSerializable