code: public static String parseJsonString(JsonReader reader, JsonProperty property) throws IOException {
          if (property.type == null) {
              // set property type to the default value if not set otherwise
              // (e.g. on by the value before in an array loop)
              property.type = PropertyType.nameFromValue(PropertyType.STRING);
          }
          String string = reader.nextString();
          // check for a type hint string pattern and extract the parts if matching
          Matcher matcher = MappingRules.TYPED_PROPERTY_STRING.matcher(string);
          if (matcher.matches()) {
              try {
                  // ensure that the type ist known in the JCR repository
                  property.type = PropertyType.nameFromValue(
                          PropertyType.valueFromName(matcher.group(1)));
                  string = matcher.group(2);
              } catch (IllegalArgumentException iaex) {
                  // if not a known type let the string unchanged
              }
          }
          property.value = string;
          return string;
      }
docs: The parser for a JSON string value with an optional type hint ('{type}...') as the values prefix.
  Sets the value and type of the property POJO and returns the string value without the type.
  This is used for single property values and also for multiple values (in the array loop).
  
  @param reader
  @param property
  @return
  @throws IOException