Class FormattingStyle

java.lang.Object
com.google.gson.FormattingStyle

public class FormattingStyle extends Object
A class used to control what the serialization output looks like.

It currently has the following configuration methods, but more methods might be added in the future:

Since:
2.11.0
See Also:
  • Field Details

    • newline

      private final String newline
    • indent

      private final String indent
    • spaceAfterSeparators

      private final boolean spaceAfterSeparators
    • COMPACT

      public static final FormattingStyle COMPACT
      The default compact formatting style:
      • no newline
      • no indent
      • no space after ',' and ':'
    • PRETTY

      public static final FormattingStyle PRETTY
      The default pretty printing formatting style:
      • "\n" as newline
      • two spaces as indent
      • a space between ':' and the subsequent value
  • Constructor Details

    • FormattingStyle

      private FormattingStyle(String newline, String indent, boolean spaceAfterSeparators)
  • Method Details

    • withNewline

      public FormattingStyle withNewline(String newline)
      Creates a FormattingStyle with the specified newline setting.

      It can be used to accommodate certain OS convention, for example hardcode "\n" for Linux and macOS, "\r\n" for Windows, or call System.lineSeparator() to match the current OS.

      Only combinations of \n and \r are allowed.

      Parameters:
      newline - the string value that will be used as newline.
      Returns:
      a newly created FormattingStyle
      See Also:
    • withIndent

      public FormattingStyle withIndent(String indent)
      Creates a FormattingStyle with the specified indent string.

      Only combinations of spaces and tabs are allowed in indent.

      Parameters:
      indent - the string value that will be used as indent.
      Returns:
      a newly created FormattingStyle
      See Also:
    • withSpaceAfterSeparators

      public FormattingStyle withSpaceAfterSeparators(boolean spaceAfterSeparators)
      Creates a FormattingStyle which either uses a space after the separators ',' and ':' in the JSON output, or not.

      This setting has no effect on the configured newline. If a non-empty newline is configured, it will always be added after ',' and no space is added after the ',' in that case.

      Parameters:
      spaceAfterSeparators - whether to output a space after ',' and ':'.
      Returns:
      a newly created FormattingStyle
      See Also:
    • getNewline

      public String getNewline()
      Returns the string value that will be used as a newline.
      Returns:
      the newline value.
      See Also:
    • getIndent

      public String getIndent()
      Returns the string value that will be used as indent.
      Returns:
      the indent value.
      See Also:
    • usesSpaceAfterSeparators

      public boolean usesSpaceAfterSeparators()
      Returns whether a space will be used after ',' and ':'.
      See Also: