Class JsonIo.JavaStringBuilder

java.lang.Object
com.cedarsoftware.io.JsonIo.JavaStringBuilder
Enclosing class:
JsonIo

public static final class JsonIo.JavaStringBuilder extends Object
Builder for converting a JSON string to Java objects.

This builder completes the JSON parsing process started by JsonIo.toJava(String, ReadOptions). It provides methods to specify the target type for the deserialization.

  • Method Details

    • asClass

      public <T> T asClass(Class<T> clazz)
      Completes the JSON parsing by specifying a target class.

      This method finishes the conversion process by parsing the JSON string into an instance of the specified class. The method is suitable for converting to:

      • Concrete Java classes (e.g., Person.class)
      • Primitive wrapper classes (e.g., Integer.class)
      • Interface types like Map.class or List.class (which will use appropriate implementations)

      For generic types like List<Person>, use the asType(TypeHolder) method instead.

      Examples:

       // Convert to a specific class
       Person person = JsonIo.toJava(jsonString, readOptions).asClass(Person.class);
      
       // Convert to a Map
       Map<String, Object> map = JsonIo.toJava(jsonString, readOptions).asClass(Map.class);
      
       // Convert to a List (note: without generic type information)
       List list = JsonIo.toJava(jsonString, readOptions).asClass(List.class);
       

      The behavior is affected by the ReadOptions:

      • With returnAsJavaObjects() (default), this method attempts to create fully instantiated objects of the specified class.
      • With returnAsJsonObjects(), this method returns an intermediate representation, typically Map objects, that can be manipulated before further processing.
      Type Parameters:
      T - the type to convert the JSON to
      Parameters:
      clazz - the target class; if null, the type will be inferred from the JSON
      Returns:
      an instance of the specified class populated from the JSON
      Throws:
      JsonIoException - if an error occurs during parsing or conversion
    • asType

      public <T> T asType(TypeHolder<T> typeHolder)
      Completes the JSON parsing by specifying a generic type.

      This method is particularly useful for handling generic types like List<Person> or Map<String, List<Integer>>, where the full type information cannot be expressed with a simple Class object.

      The TypeHolder captures the complete generic type information at compile time, allowing JsonIo to properly handle the generics during deserialization.

      Examples:

       // Convert to a List of Person objects
       List<Person> people = JsonIo.toJava(jsonString, readOptions)
                                    .asType(new TypeHolder<List<Person>>(){});
      
       // Convert to a Map with generic parameters
       Map<String, List<Integer>> map = JsonIo.toJava(jsonString, readOptions)
                                                .asType(new TypeHolder<Map<String, List<Integer>>>(){});
       
      Type Parameters:
      T - the type to convert the JSON to
      Parameters:
      typeHolder - a TypeHolder instance capturing the full generic type
      Returns:
      an object of the specified type populated from the JSON
      Throws:
      JsonIoException - if an error occurs during parsing or conversion