Package org.unbescape.json
Enum JsonEscapeLevel
- java.lang.Object
-
- java.lang.Enum<JsonEscapeLevel>
-
- org.unbescape.json.JsonEscapeLevel
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Comparable<JsonEscapeLevel>
public enum JsonEscapeLevel extends java.lang.Enum<JsonEscapeLevel>
Levels defined for JSON escape/unescape operations:
- Level 1: Escape only the basic escape set. Note the result of a level-1 escape
operation might still contain non-ASCII characters if they existed in input, and therefore you
will still need to correctly manage your input/output character encoding settings. Such
basic set consists of:
- The Single Escape Characters: \b (U+0008), \t (U+0009), \n (U+000A), \f (U+000C), \r (U+000D), \" (U+0022), \\ (U+005C) and \/ (U+002F). Note that \/ is optional, and will only be used when the / symbol appears after <, as in </. This is to avoid accidentally closing <script> tags in HTML.
- The ampersand symbol (&, U+0026), which will be escaped in order to protect from code injection in XHTML environments (browsers will parse XHTML escape codes inside literals in <script> tags). Note there is no Single Escape Character for this symbol, so it will be escaped using the sequence corresponding to the selected escape type (e.g. \u0026).
- Two ranges of non-displayable, control characters (some of which are already part of the single escape characters list): U+0000 to U+001F (required by the JSON spec) and U+007F to U+009F (additional).
- Level 2: Escape the basic escape set (as defined in level 1), plus all non-ASCII characters. The result of a level-2 escape operation is therefore always ASCII-only text, and safer to use in complex scenarios with mixed input/output character encodings.
- Level 3: Escape all non-alphanumeric characters, this is, all but those in the A-Z, a-z and 0-9 ranges. This level can be safely used for completely escaping texts, including whitespace, line feeds, punctuation, etc. in scenarios where this adds an extra level of safety.
- Level 4: Escape all characters, even alphanumeric ones.
For further information, see the Glossary and the References sections at the documentation for the
JsonEscape
class.- Since:
- 1.0.0
-
-
Enum Constant Summary
Enum Constants Enum Constant Description LEVEL_1_BASIC_ESCAPE_SET
Level 1 escape: escape only the basic escape set: Single Escape Chars plus non-displayable control chars.LEVEL_2_ALL_NON_ASCII_PLUS_BASIC_ESCAPE_SET
Level 2 escape: escape the basic escape set plus all non-ASCII characters (result will always be ASCII).LEVEL_3_ALL_NON_ALPHANUMERIC
Level 3 escape: escape all non-alphanumeric characteres (escape all but those in the A-Z, a-z and 0-9 ranges).LEVEL_4_ALL_CHARACTERS
Level 4 escape: escape all characters, including alphanumeric.
-
Field Summary
Fields Modifier and Type Field Description private int
escapeLevel
-
Constructor Summary
Constructors Modifier Constructor Description private
JsonEscapeLevel(int escapeLevel)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static JsonEscapeLevel
forLevel(int level)
Utility method for obtaining an enum value from its corresponding int level value.int
getEscapeLevel()
Return the int escape level.static JsonEscapeLevel
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.static JsonEscapeLevel[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
LEVEL_1_BASIC_ESCAPE_SET
public static final JsonEscapeLevel LEVEL_1_BASIC_ESCAPE_SET
Level 1 escape: escape only the basic escape set: Single Escape Chars plus non-displayable control chars.
-
LEVEL_2_ALL_NON_ASCII_PLUS_BASIC_ESCAPE_SET
public static final JsonEscapeLevel LEVEL_2_ALL_NON_ASCII_PLUS_BASIC_ESCAPE_SET
Level 2 escape: escape the basic escape set plus all non-ASCII characters (result will always be ASCII).
-
LEVEL_3_ALL_NON_ALPHANUMERIC
public static final JsonEscapeLevel LEVEL_3_ALL_NON_ALPHANUMERIC
Level 3 escape: escape all non-alphanumeric characteres (escape all but those in the A-Z, a-z and 0-9 ranges).
-
LEVEL_4_ALL_CHARACTERS
public static final JsonEscapeLevel LEVEL_4_ALL_CHARACTERS
Level 4 escape: escape all characters, including alphanumeric.
-
-
Method Detail
-
values
public static JsonEscapeLevel[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (JsonEscapeLevel c : JsonEscapeLevel.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static JsonEscapeLevel valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is null
-
forLevel
public static JsonEscapeLevel forLevel(int level)
Utility method for obtaining an enum value from its corresponding int level value.
- Parameters:
level
- the level- Returns:
- the escape level enum constant, or IllegalArgumentException if level does not exist.
-
getEscapeLevel
public int getEscapeLevel()
Return the int escape level.- Returns:
- the escape level.
-
-