Package net.sf.json.util
Class JSONUtils
- java.lang.Object
-
- net.sf.json.util.JSONUtils
-
public final class JSONUtils extends java.lang.Object
Provides useful methods on java objects and JSON values.- Version:
- 7
- Author:
- Andres Almiray
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DOUBLE_QUOTE
Constant for char "static java.lang.String
SINGLE_QUOTE
Constant for char '
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.String
convertToJavaIdentifier(java.lang.String key)
Transforms the string into a valid Java Identifier.
The default strategy is JavaIdentifierTransformer.NOOPstatic java.lang.String
convertToJavaIdentifier(java.lang.String key, JsonConfig jsonConfig)
Transforms the string into a valid Java Identifier.
The default strategy is JavaIdentifierTransformer.NOOPstatic java.lang.String
doubleToString(double d)
Produce a string from a double.static java.lang.String
getFunctionBody(java.lang.String function)
Returns the body of a function literal.static java.lang.String
getFunctionParams(java.lang.String function)
Returns the params of a function literal.static java.lang.Class
getInnerComponentType(java.lang.Class type)
Returns the inner-most component type of an Array.static net.sf.ezmorph.MorpherRegistry
getMorpherRegistry()
Returns the singleton MorpherRegistry.static java.util.Map
getProperties(JSONObject jsonObject)
Creates a Map with all the properties of the JSONObject.static java.lang.Class
getTypeClass(java.lang.Object obj)
Returns the JSON type.
Values are Object, String, Boolean, Number(subclasses) & JSONFunction.static int
hashCode(java.lang.Object value)
Returns the hashcode of value.
If null it will return JSONNull.getInstance().hashCode().
If value is JSON, JSONFunction or String, value.hashCode is returned, otherwise the value is transformed to a String an its hashcode is returned.static boolean
hasQuotes(java.lang.String input)
Returns true if the input has single-quotes or double-quotes at both sides.static boolean
isArray(java.lang.Class clazz)
Tests if a Class represents an array or Collection.static boolean
isArray(java.lang.Object obj)
Tests if obj is an array or Collection.static boolean
isBoolean(java.lang.Class clazz)
Tests if Class represents a Boolean or primitive booleanstatic boolean
isBoolean(java.lang.Object obj)
Tests if obj is a Boolean or primitive booleanstatic boolean
isDouble(java.lang.Class clazz)
Tests if Class represents a primitive double or wrapper.static boolean
isFunction(java.lang.Object obj)
Tests if obj is javaScript function.
Obj must be a non-null String and match"^function[ ]?\\(.*\\)[ ]?\\{.*\\}$" static boolean
isFunctionHeader(java.lang.Object obj)
Tests if obj is javaScript function header.
Obj must be a non-null String and match "^function[ ]?\\(.*\\)$"static boolean
isJavaIdentifier(java.lang.String str)
Returns trus if str represents a valid Java identifier.static boolean
isJsonKeyword(java.lang.String input, JsonConfig jsonConfig)
static boolean
isNull(java.lang.Object obj)
Tests if the obj is a javaScript null.static boolean
isNumber(java.lang.Class clazz)
Tests if Class represents a primitive number or wrapper.static boolean
isNumber(java.lang.Object obj)
Tests if obj is a primitive number or wrapper.static boolean
isObject(java.lang.Object obj)
Tests if obj is not a boolean, number, string or array.static boolean
isString(java.lang.Class clazz)
Tests if Class represents a String or a charstatic boolean
isString(java.lang.Object obj)
Tests if obj is a String or a charstatic boolean
mayBeJSON(java.lang.String string)
Tests if the String possibly represents a valid JSON String.
Valid JSON strings are: "null" starts with "[" and ends with "]" starts with "{" and ends with "}"static org.apache.commons.beanutils.DynaBean
newDynaBean(JSONObject jsonObject)
Creates a new MorphDynaBean from a JSONObject.static org.apache.commons.beanutils.DynaBean
newDynaBean(JSONObject jsonObject, JsonConfig jsonConfig)
Creates a new MorphDynaBean from a JSONObject.static java.lang.String
numberToString(java.lang.Number n)
Produce a string from a Number.static java.lang.String
quote(java.lang.String string)
Produce a string in double quotes with backslash sequences in all the right places.static java.lang.String
quoteCanonical(java.lang.String s)
Minimal escape form.static java.lang.String
stripQuotes(java.lang.String input)
Strips any single-quotes or double-quotes from both sides of the string.static void
testValidity(java.lang.Object o)
Throw an exception if the object is an NaN or infinite number.static java.lang.Number
transformNumber(java.lang.Number input)
Transforms a Number into a valid javascript number.
Float gets promoted to Double.
Byte and Short get promoted to Integer.
Long gets downgraded to Integer if possible.static java.lang.String
valueToCanonicalString(java.lang.Object value)
static java.lang.String
valueToString(java.lang.Object value)
Make a JSON text of an Object value.static java.lang.String
valueToString(java.lang.Object value, int indentFactor, int indent)
Make a prettyprinted JSON text of an object value.
-
-
-
Field Detail
-
DOUBLE_QUOTE
public static final java.lang.String DOUBLE_QUOTE
Constant for char "- See Also:
- Constant Field Values
-
SINGLE_QUOTE
public static final java.lang.String SINGLE_QUOTE
Constant for char '- See Also:
- Constant Field Values
-
-
Method Detail
-
convertToJavaIdentifier
public static java.lang.String convertToJavaIdentifier(java.lang.String key)
Transforms the string into a valid Java Identifier.
The default strategy is JavaIdentifierTransformer.NOOP- Throws:
JSONException
- if the string can not be transformed.
-
convertToJavaIdentifier
public static java.lang.String convertToJavaIdentifier(java.lang.String key, JsonConfig jsonConfig)
Transforms the string into a valid Java Identifier.
The default strategy is JavaIdentifierTransformer.NOOP- Throws:
JSONException
- if the string can not be transformed.
-
doubleToString
public static java.lang.String doubleToString(double d)
Produce a string from a double. The string "null" will be returned if the number is not finite.- Parameters:
d
- A double.- Returns:
- A String.
-
getFunctionBody
public static java.lang.String getFunctionBody(java.lang.String function)
Returns the body of a function literal.
-
getFunctionParams
public static java.lang.String getFunctionParams(java.lang.String function)
Returns the params of a function literal.
-
getInnerComponentType
public static java.lang.Class getInnerComponentType(java.lang.Class type)
Returns the inner-most component type of an Array.
-
getMorpherRegistry
public static net.sf.ezmorph.MorpherRegistry getMorpherRegistry()
Returns the singleton MorpherRegistry.
-
getProperties
public static java.util.Map getProperties(JSONObject jsonObject)
Creates a Map with all the properties of the JSONObject.
-
getTypeClass
public static java.lang.Class getTypeClass(java.lang.Object obj)
Returns the JSON type.
Values are Object, String, Boolean, Number(subclasses) & JSONFunction.
-
hashCode
public static int hashCode(java.lang.Object value)
Returns the hashcode of value.
If null it will return JSONNull.getInstance().hashCode().
If value is JSON, JSONFunction or String, value.hashCode is returned, otherwise the value is transformed to a String an its hashcode is returned.
-
isArray
public static boolean isArray(java.lang.Class clazz)
Tests if a Class represents an array or Collection.
-
isArray
public static boolean isArray(java.lang.Object obj)
Tests if obj is an array or Collection.
-
isBoolean
public static boolean isBoolean(java.lang.Class clazz)
Tests if Class represents a Boolean or primitive boolean
-
isBoolean
public static boolean isBoolean(java.lang.Object obj)
Tests if obj is a Boolean or primitive boolean
-
isDouble
public static boolean isDouble(java.lang.Class clazz)
Tests if Class represents a primitive double or wrapper.
-
isFunction
public static boolean isFunction(java.lang.Object obj)
Tests if obj is javaScript function.
Obj must be a non-null String and match"^function[ ]?\\(.*\\)[ ]?\\{.*\\}$"
-
isFunctionHeader
public static boolean isFunctionHeader(java.lang.Object obj)
Tests if obj is javaScript function header.
Obj must be a non-null String and match "^function[ ]?\\(.*\\)$"
-
isJavaIdentifier
public static boolean isJavaIdentifier(java.lang.String str)
Returns trus if str represents a valid Java identifier.
-
isNull
public static boolean isNull(java.lang.Object obj)
Tests if the obj is a javaScript null.
-
isNumber
public static boolean isNumber(java.lang.Class clazz)
Tests if Class represents a primitive number or wrapper.
-
isNumber
public static boolean isNumber(java.lang.Object obj)
Tests if obj is a primitive number or wrapper.
-
isObject
public static boolean isObject(java.lang.Object obj)
Tests if obj is not a boolean, number, string or array.
-
isString
public static boolean isString(java.lang.Class clazz)
Tests if Class represents a String or a char
-
isString
public static boolean isString(java.lang.Object obj)
Tests if obj is a String or a char
-
mayBeJSON
public static boolean mayBeJSON(java.lang.String string)
Tests if the String possibly represents a valid JSON String.
Valid JSON strings are:- "null"
- starts with "[" and ends with "]"
- starts with "{" and ends with "}"
-
newDynaBean
public static org.apache.commons.beanutils.DynaBean newDynaBean(JSONObject jsonObject)
Creates a new MorphDynaBean from a JSONObject. The MorphDynaBean will have all the properties of the original JSONObject with the most accurate type. Values of properties are not copied.
-
newDynaBean
public static org.apache.commons.beanutils.DynaBean newDynaBean(JSONObject jsonObject, JsonConfig jsonConfig)
Creates a new MorphDynaBean from a JSONObject. The MorphDynaBean will have all the properties of the original JSONObject with the most accurate type. Values of properties are not copied.
-
numberToString
public static java.lang.String numberToString(java.lang.Number n)
Produce a string from a Number.- Parameters:
n
- A Number- Returns:
- A String.
- Throws:
JSONException
- If n is a non-finite number.
-
quote
public static java.lang.String quote(java.lang.String string)
Produce a string in double quotes with backslash sequences in all the right places. A backslash will be inserted within , allowing JSON text to be delivered in HTML. In JSON text, a string cannot contain a control character or an unescaped quote or backslash.- Parameters:
string
- A String- Returns:
- A String correctly formatted for insertion in a JSON text.
-
quoteCanonical
public static java.lang.String quoteCanonical(java.lang.String s)
Minimal escape form.
-
stripQuotes
public static java.lang.String stripQuotes(java.lang.String input)
Strips any single-quotes or double-quotes from both sides of the string.
-
hasQuotes
public static boolean hasQuotes(java.lang.String input)
Returns true if the input has single-quotes or double-quotes at both sides.
-
isJsonKeyword
public static boolean isJsonKeyword(java.lang.String input, JsonConfig jsonConfig)
-
testValidity
public static void testValidity(java.lang.Object o)
Throw an exception if the object is an NaN or infinite number.- Parameters:
o
- The object to test.- Throws:
JSONException
- If o is a non-finite number.
-
transformNumber
public static java.lang.Number transformNumber(java.lang.Number input)
Transforms a Number into a valid javascript number.
Float gets promoted to Double.
Byte and Short get promoted to Integer.
Long gets downgraded to Integer if possible.
-
valueToString
public static java.lang.String valueToString(java.lang.Object value)
Make a JSON text of an Object value. If the object has an value.toJSONString() method, then that method will be used to produce the JSON text. The method is required to produce a strictly conforming text. If the object does not contain a toJSONString method (which is the most common case), then a text will be produced by the rules.Warning: This method assumes that the data structure is acyclical.
- Parameters:
value
- The value to be serialized.- Returns:
- a printable, displayable, transmittable representation of the
object, beginning with
{
(left brace) and ending with}
(right brace). - Throws:
JSONException
- If the value is or contains an invalid number.
-
valueToCanonicalString
public static java.lang.String valueToCanonicalString(java.lang.Object value)
-
valueToString
public static java.lang.String valueToString(java.lang.Object value, int indentFactor, int indent)
Make a prettyprinted JSON text of an object value.Warning: This method assumes that the data structure is acyclical.
- Parameters:
value
- The value to be serialized.indentFactor
- The number of spaces to add to each level of indentation.indent
- The indentation of the top level.- Returns:
- a printable, displayable, transmittable representation of the
object, beginning with
{
(left brace) and ending with}
(right brace). - Throws:
JSONException
- If the object contains an invalid number.
-
-