groovy.json

## Class StringEscapeUtils

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

    public class StringEscapeUtils
    extends java.lang.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
Author:
  Apache Software Foundation, Apache Jakarta Turbine, Purple Technology, Alexander Day Chaffee, Antony Riley, Helge Tesgaard, Sean Brown, Gary Gregory, Phil Steitz, Pete Gieser

### Constructor Summary

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

### Method Summary

All Methods Static Methods Concrete Methods
`static java.lang.String` `escapeJava(java.lang.String str)` Escapes the characters in a `String` using Java String rules.
`static void` `escapeJava(java.io.Writer out, java.lang.String str)` Escapes the characters in a `String` using Java String rules to a `Writer`.
`static java.lang.String` `escapeJavaScript(java.lang.String str)` Escapes the characters in a `String` using JavaScript String rules.
`static void` `escapeJavaScript(java.io.Writer out, java.lang.String str)` Escapes the characters in a `String` using JavaScript String rules to a `Writer`.
`static java.lang.String` `unescapeJava(java.lang.String str)` Unescapes any Java literals found in the `String`.
`static void` `unescapeJava(java.io.Writer out, java.lang.String str)` Unescapes any Java literals found in the `String` to a `Writer`.
`static java.lang.String` `unescapeJavaScript(java.lang.String str)` Unescapes any JavaScript literals found in the `String`.
`static void` `unescapeJavaScript(java.io.Writer out, java.lang.String str)` Unescapes any JavaScript literals found in the `String` to a `Writer`.

### 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 java.lang.String escapeJava(java.lang.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(java.io.Writer out,
                                  java.lang.String str)
                           throws java.io.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:
  `java.lang.IllegalArgumentException` - if the Writer is `null`
  `java.io.IOException` - if error occurs on underlying Writer
See Also:
  `escapeJava(java.lang.String)`

#### escapeJavaScript

    public static java.lang.String escapeJavaScript(java.lang.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(java.io.Writer out,
                                        java.lang.String str)
                                 throws java.io.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:
  `java.lang.IllegalArgumentException` - if the Writer is `null`
  `java.io.IOException` - if error occurs on underlying Writer
See Also:
  `escapeJavaScript(java.lang.String)`

#### unescapeJava

    public static java.lang.String unescapeJava(java.lang.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(java.io.Writer out,
                                    java.lang.String str)
                             throws java.io.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:
  `java.lang.IllegalArgumentException` - if the Writer is `null`
  `java.io.IOException` - if error occurs on underlying Writer

#### unescapeJavaScript

    public static java.lang.String unescapeJavaScript(java.lang.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(java.io.Writer out,
                                          java.lang.String str)
                                   throws java.io.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:
  `java.lang.IllegalArgumentException` - if the Writer is `null`
  `java.io.IOException` - if error occurs on underlying Writer
See Also:
  `unescapeJava(Writer,String)`