code: public static <P extends ParaObject> P fromJSON(String json) {
  		if (StringUtils.isBlank(json)) {
  			return null;
  		}
  		try {
  			Map<String, Object> map = getJsonReader(Map.class).readValue(json);
  			return setAnnotatedFields(map);
  		} catch (Exception e) {
  			logger.error(null, e);
  		}
  		return null;
  	}
docs: Converts a JSON string to a domain object. If we can't match the JSON to a core object, we fall back to
  {@link com.erudika.para.core.Sysprop}.
  
  @param <P> type of object to convert
  @param json the JSON string
  @return a core domain object or null if the string was blank