Package com.google.gwt.core.client
Class JsonUtils
java.lang.Object
com.google.gwt.core.client.JsonUtils
Provides JSON-related utility methods.
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
escapeJsonForEval
(String toEscape) Escapes characters within a JSON string than cannot be passed directly to eval().static String
escapeValue
(String toEscape) Returns a quoted, escaped JSON String.static <T extends JavaScriptObject>
TEvaluates a JSON expression safely.static boolean
safeToEval
(String text) Returns true if the given JSON string may be safely evaluated byeval()
without undesired side effects or security risks.static String
Converts a value to JSON.static String
stringify
(JavaScriptObject obj, String space) Converts a value to JSON.(package private) static void
throwIllegalArgumentException
(String message, String data) static <T extends JavaScriptObject>
TunsafeEval
(String json) Evaluates a JSON expression usingeval()
.
-
Method Details
-
stringify
Converts a value to JSON. -
stringify
Converts a value to JSON.- Parameters:
space
- controls the spacing in the final string. Successive levels in the stringification will each be indented by this string (or the first ten characters of it).
-
escapeJsonForEval
Escapes characters within a JSON string than cannot be passed directly to eval(). Control characters, quotes and backslashes are not affected. -
escapeValue
Returns a quoted, escaped JSON String. -
safeEval
Evaluates a JSON expression safely. The payload must evaluate to an Object or an Array (not a primitive or a String).- Type Parameters:
T
- The type of JavaScriptObject that should be returned- Parameters:
json
- The source JSON text- Returns:
- The evaluated object
- Throws:
IllegalArgumentException
- if the input is not valid JSON
-
safeToEval
Returns true if the given JSON string may be safely evaluated byeval()
without undesired side effects or security risks. Note that a true result from this method does not guarantee that the input string is valid JSON. This method does not consider the contents of quoted strings; it may still be necessary to perform escaping prior to evaluation for correct results.The technique used is taken from RFC 4627.
Note that this function may fail in sufficiently large text in some browsers (e.g. Chrome). It is always better to use
safeEval(java.lang.String)
instead which is safer, faster and also works with large texts but less lenient than this one for invalid JSON. -
unsafeEval
Evaluates a JSON expression usingeval()
. This method does not validate the JSON text and should only be used on JSON from trusted sources. The payload must evaluate to an Object or an Array (not a primitive or a String).- Type Parameters:
T
- The type of JavaScriptObject that should be returned- Parameters:
json
- The source JSON text- Returns:
- The evaluated object
-
throwIllegalArgumentException
-