Direct Known Subclasses:
JsonR

public class Json extends CharMarshaller
A pairing of a JsonSerializer and JsonParser into a single class with convenience read/write methods.

The general idea is to combine a single serializer and parser inside a simplified API for reading and writing POJOs.

Examples:

// Using instance. Json json = new Json(); MyPojo myPojo = json.read(string, MyPojo.class); String string = json.write(myPojo);

// Using DEFAULT instance. MyPojo myPojo = Json.DEFAULT.read(string, MyPojo.class); String string = Json.DEFAULT.write(myPojo);

Example output (Map of name/age):

{"name":"Alice","age":30}

Complex (nested object + array):

{"name":"Alice","age":30,"address":{"street":"123 Main St","city":"Boston","state":"MA"},"tags":["a","b","c"]}

// Using static shortcuts. MyPojo myPojo = Json.to(string, MyPojo.class); String string = Json.of(myPojo);

See Also:
  • Field Details

    • DEFAULT

      public static final Json DEFAULT
      Default reusable instance.
  • Constructor Details

  • Method Details

    • of

      public static String of(Object object) throws SerializeException
      Serializes a POJO to a String using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.write(object).

      Parameters:
      object - The object to serialize.
      Returns:
      The serialized object.
      Throws:
      SerializeException - If a problem occurred trying to convert the output.
    • to

      public static <T> T to(String input, Class<T> type) throws ParseException
      Parses an input into the specified object type using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.read(input, type).

      Type Parameters:
      T - The class type of the object being created.
      Parameters:
      input - The input.
      type - The object type to create.
      Returns:
      The parsed object.
      Throws:
      ParseException - Malformed input encountered.
    • to

      public static <T> T to(String input, Type type, Type... args) throws ParseException
      Parses an input into the specified parameterized object type using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.read(input, type, args).

      Type Parameters:
      T - The class type of the object to create.
      Parameters:
      input - The input.
      type - The object type to create.
      args - The type arguments of the class if it's a collection or map.
      Returns:
      The parsed object.
      Throws:
      ParseException - Malformed input encountered.
    • to

      public static <T> T to(Reader input, Class<T> type) throws ParseException
      Parses the contents of a Reader into the specified object type using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.read(input, type) that catches any IOException from the underlying stream and rethrows it as an unchecked ParseException, so the caller is not burdened with a checked exception.

      Type Parameters:
      T - The class type of the object being created.
      Parameters:
      input - The input reader.
      type - The object type to create.
      Returns:
      The parsed object.
      Throws:
      ParseException - Malformed input encountered or an I/O error occurred on the underlying stream.
    • to

      public static <T> T to(Reader input, Type type, Type... args) throws ParseException
      Parses the contents of a Reader into the specified parameterized object type using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.read(input, type, args) that catches any IOException from the underlying stream and rethrows it as an unchecked ParseException, so the caller is not burdened with a checked exception.

      Type Parameters:
      T - The class type of the object to create.
      Parameters:
      input - The input reader.
      type - The object type to create.
      args - The type arguments of the class if it's a collection or map.
      Returns:
      The parsed object.
      Throws:
      ParseException - Malformed input encountered or an I/O error occurred on the underlying stream.
    • of

      public static void of(Object object, Writer output) throws SerializeException
      Serializes a POJO to the specified Writer using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.write(object, output) that catches any IOException from the underlying stream and rethrows it as an unchecked SerializeException, so the caller is not burdened with a checked exception.

      Parameters:
      object - The object to serialize.
      output - The writer to serialize to.
      Throws:
      SerializeException - If a problem occurred trying to convert the output or an I/O error occurred on the underlying stream.
    • toTokens

      public static TokenReader toTokens(Object input) throws IOException
      Opens a low-level TokenReader cursor over the specified input using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.readTokens(input).

      Parameters:
      input - The input.
      Returns:
      A new TokenReader.
      Throws:
      IOException - If a problem occurred opening the underlying input.
    • ofTokens

      public static TokenWriter ofTokens(Object output) throws IOException
      Opens a low-level TokenWriter generator over the specified output using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.writeTokens(output).

      Parameters:
      output - The output.
      Returns:
      A new TokenWriter.
      Throws:
      IOException - If a problem occurred opening the underlying output.
    • toRecords

      public static RecordReader toRecords(Object input) throws IOException
      Opens a low-level RecordReader cursor over the specified input using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.readRecords(input).

      Parameters:
      input - The input.
      Returns:
      A new RecordReader.
      Throws:
      IOException - If a problem occurred opening the underlying input.
    • ofRecords

      public static RecordWriter ofRecords(Object output) throws IOException
      Opens a low-level RecordWriter cursor over the specified output using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.writeRecords(output).

      Parameters:
      output - The output.
      Returns:
      A new RecordWriter.
      Throws:
      IOException - If a problem occurred opening the underlying output.
    • toArrayRecords

      public static RecordReader toArrayRecords(Object input) throws IOException
      Opens a RecordReader that yields each element of a top-level wire array using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.readArrayRecords(input).

      Parameters:
      input - The input.
      Returns:
      A new RecordReader.
      Throws:
      IOException - If a problem occurred opening the underlying input.
    • ofArrayRecords

      public static RecordWriter ofArrayRecords(Object output) throws IOException
      Opens a RecordWriter that wraps each written value as one element of a top-level wire array using the DEFAULT marshaller.

      A shortcut for calling DEFAULT.writeArrayRecords(output).

      Parameters:
      output - The output.
      Returns:
      A new RecordWriter.
      Throws:
      IOException - If a problem occurred opening the underlying output.