Package groovy.json

## Class StringEscapeUtils

- java.lang.Object
- - groovy.json.StringEscapeUtils

-     public class StringEscapeUtils
      extends Object

  Escapes and unescapes `String`s for Java, Java Script, HTML, XML, and SQL.

  #ThreadSafe#

  Note that this version is a stripped down version from Commons Lang 2.6 with only necessary methods for JSON builder

  Since:
    2.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `StringEscapeUtils()` | `StringEscapeUtils` instances should NOT be constructed in standard programming.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | `escapeJava​(Writer out, String str)` | Escapes the characters in a `String` using Java String rules to a `Writer`.
    `static String` | `escapeJava​(String str)` | Escapes the characters in a `String` using Java String rules.
    `static void` | `escapeJavaScript​(Writer out, String str)` | Escapes the characters in a `String` using JavaScript String rules to a `Writer`.
    `static String` | `escapeJavaScript​(String str)` | Escapes the characters in a `String` using JavaScript String rules.
    `static void` | `unescapeJava​(Writer out, String str)` | Unescapes any Java literals found in the `String` to a `Writer`.
    `static String` | `unescapeJava​(String str)` | Unescapes any Java literals found in the `String`.
    `static void` | `unescapeJavaScript​(Writer out, String str)` | Unescapes any JavaScript literals found in the `String` to a `Writer`.
    `static String` | `unescapeJavaScript​(String str)` | Unescapes any JavaScript literals found in the `String`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### StringEscapeUtils

          public StringEscapeUtils()

      `StringEscapeUtils` instances should NOT be constructed in standard programming.

      Instead, the class should be used as:

          StringEscapeUtils.escapeJava("foo");

      This constructor is public to permit tools that require a JavaBean instance to operate.

  - ### Method Detail

    - #### escapeJava

          public static String escapeJava​(String str)

      Escapes the characters in a `String` using Java String rules.

      Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.)

      So a tab becomes the characters `'\\'` and `'t'`.

      The only difference between Java strings and JavaScript strings is that in JavaScript, a single quote must be escaped.

      Example:

           input string: He didn't say, "Stop!"
           output string: He didn't say, \"Stop!\"

      Parameters:
        `str` - String to escape values in, may be null
      Returns:
        String with escaped values, `null` if null string input

    - #### escapeJava

          public static void escapeJava​(Writer out,
                                        String str)
                                 throws IOException

      Escapes the characters in a `String` using Java String rules to a `Writer`.

      A `null` string input has no effect.

      Parameters:
        `out` - Writer to write escaped string into
        `str` - String to escape values in, may be null
      Throws:
        `IllegalArgumentException` - if the Writer is `null`
        `IOException` - if error occurs on underlying Writer
      See Also:
        `escapeJava(java.lang.String)`

    - #### escapeJavaScript

          public static String escapeJavaScript​(String str)

      Escapes the characters in a `String` using JavaScript String rules.

      Escapes any values it finds into their JavaScript String form. Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.)

      So a tab becomes the characters `'\\'` and `'t'`.

      The only difference between Java strings and JavaScript strings is that in JavaScript, a single quote must be escaped.

      Example:

           input string: He didn't say, "Stop!"
           output string: He didn\'t say, \"Stop!\"

      Parameters:
        `str` - String to escape values in, may be null
      Returns:
        String with escaped values, `null` if null string input

    - #### escapeJavaScript

          public static void escapeJavaScript​(Writer out,
                                              String str)
                                       throws IOException

      Escapes the characters in a `String` using JavaScript String rules to a `Writer`.

      A `null` string input has no effect.

      Parameters:
        `out` - Writer to write escaped string into
        `str` - String to escape values in, may be null
      Throws:
        `IllegalArgumentException` - if the Writer is `null`
        `IOException` - if error occurs on underlying Writer
      See Also:
        `escapeJavaScript(java.lang.String)`

    - #### unescapeJava

          public static String unescapeJava​(String str)

      Unescapes any Java literals found in the `String`. For example, it will turn a sequence of `'\'` and `'n'` into a newline character, unless the `'\'` is preceded by another `'\'`.
      Parameters:
        `str` - the `String` to unescape, may be null
      Returns:
        a new unescaped `String`, `null` if null string input

    - #### unescapeJava

          public static void unescapeJava​(Writer out,
                                          String str)
                                   throws IOException

      Unescapes any Java literals found in the `String` to a `Writer`.

      For example, it will turn a sequence of `'\'` and `'n'` into a newline character, unless the `'\'` is preceded by another `'\'`.

      A `null` string input has no effect.

      Parameters:
        `out` - the `Writer` used to output unescaped characters
        `str` - the `String` to unescape, may be null
      Throws:
        `IllegalArgumentException` - if the Writer is `null`
        `IOException` - if error occurs on underlying Writer

    - #### unescapeJavaScript

          public static String unescapeJavaScript​(String str)

      Unescapes any JavaScript literals found in the `String`.

      For example, it will turn a sequence of `'\'` and `'n'` into a newline character, unless the `'\'` is preceded by another `'\'`.

      Parameters:
        `str` - the `String` to unescape, may be null
      Returns:
        A new unescaped `String`, `null` if null string input
      See Also:
        `unescapeJava(String)`

    - #### unescapeJavaScript

          public static void unescapeJavaScript​(Writer out,
                                                String str)
                                         throws IOException

      Unescapes any JavaScript literals found in the `String` to a `Writer`.

      For example, it will turn a sequence of `'\'` and `'n'` into a newline character, unless the `'\'` is preceded by another `'\'`.

      A `null` string input has no effect.

      Parameters:
        `out` - the `Writer` used to output unescaped characters
        `str` - the `String` to unescape, may be null
      Throws:
        `IllegalArgumentException` - if the Writer is `null`
        `IOException` - if error occurs on underlying Writer
      See Also:
        `unescapeJava(Writer,String)`