Package net.sf.json.util
Class JSONUtils
java.lang.Object
net.sf.json.util.JSONUtils
Provides useful methods on java objects and JSON values.
- Version:
- 7
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Constant for char "private static final String
private static final String
private static final String
private static final String
private static final String
private static final net.sf.ezmorph.MorpherRegistry
static final String
Constant for char ' -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String
Transforms the string into a valid Java Identifier.
The default strategy is JavaIdentifierTransformer.NOOPstatic String
convertToJavaIdentifier
(String key, JsonConfig jsonConfig) Transforms the string into a valid Java Identifier.
The default strategy is JavaIdentifierTransformer.NOOPstatic String
doubleToString
(double d) Produce a string from a double.static String
getFunctionBody
(String function) Returns the body of a function literal.static String
getFunctionParams
(String function) Returns the params of a function literal.static Class
getInnerComponentType
(Class type) Returns the inner-most component type of an Array.static net.sf.ezmorph.MorpherRegistry
Returns the singleton MorpherRegistry.static Map
getProperties
(JSONObject jsonObject) Creates a Map with all the properties of the JSONObject.static Class
getTypeClass
(Object obj) Returns the JSON type.
Values are Object, String, Boolean, Number(subclasses) & JSONFunction.static int
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
Returns true if the input has single-quotes or double-quotes at both sides.static boolean
Tests if a Class represents an array or Collection.static boolean
Tests if obj is an array or Collection.private static boolean
Finds out if n represents a BigIntegerprivate static boolean
Finds out if n represents a BigIntegerstatic boolean
Tests if Class represents a Boolean or primitive booleanstatic boolean
Tests if obj is a Boolean or primitive booleanstatic boolean
Tests if Class represents a primitive double or wrapper.private static boolean
Finds out if n represents a Double.private static boolean
Finds out if n represents a Float.static boolean
isFunction
(Object obj) Tests if obj is javaScript function.
Obj must be a non-null String and match"^function[ ]?\\(.*\\)[ ]?\\{.*\\}$" static boolean
isFunctionHeader
(Object obj) Tests if obj is javaScript function header.
Obj must be a non-null String and match "^function[ ]?\\(.*\\)$"private static boolean
Finds out if n represents an Integer.static boolean
isJavaIdentifier
(String str) Returns trus if str represents a valid Java identifier.static boolean
isJsonKeyword
(String input, JsonConfig jsonConfig) private static boolean
Finds out if n represents a Long.static boolean
Tests if the obj is a javaScript null.static boolean
Tests if Class represents a primitive number or wrapper.static boolean
Tests if obj is a primitive number or wrapper.static boolean
Tests if obj is not a boolean, number, string or array.static boolean
Tests if Class represents a String or a charstatic boolean
Tests if obj is a String or a charstatic boolean
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 String
Produce a string from a Number.static String
Produce a string in double quotes with backslash sequences in all the right places.static String
Minimal escape form.static String
stripQuotes
(String input) Strips any single-quotes or double-quotes from both sides of the string.static void
Throw an exception if the object is an NaN or infinite number.static Number
transformNumber
(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 String
valueToCanonicalString
(Object value) static String
valueToString
(Object value) Make a JSON text of an Object value.static String
valueToString
(Object value, int indentFactor, int indent) Make a prettyprinted JSON text of an object value.
-
Field Details
-
DOUBLE_QUOTE
Constant for char "- See Also:
-
SINGLE_QUOTE
Constant for char '- See Also:
-
FUNCTION_BODY_PATTERN
- See Also:
-
FUNCTION_HEADER_PATTERN
- See Also:
-
FUNCTION_PARAMS_PATTERN
- See Also:
-
FUNCTION_PATTERN
- See Also:
-
FUNCTION_PREFIX
- See Also:
-
morpherRegistry
private static final net.sf.ezmorph.MorpherRegistry morpherRegistry
-
-
Constructor Details
-
JSONUtils
private JSONUtils()
-
-
Method Details
-
convertToJavaIdentifier
Transforms the string into a valid Java Identifier.
The default strategy is JavaIdentifierTransformer.NOOP- Throws:
JSONException
- if the string can not be transformed.
-
convertToJavaIdentifier
Transforms the string into a valid Java Identifier.
The default strategy is JavaIdentifierTransformer.NOOP- Throws:
JSONException
- if the string can not be transformed.
-
doubleToString
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
Returns the body of a function literal. -
getFunctionParams
Returns the params of a function literal. -
getInnerComponentType
Returns the inner-most component type of an Array. -
getMorpherRegistry
public static net.sf.ezmorph.MorpherRegistry getMorpherRegistry()Returns the singleton MorpherRegistry. -
getProperties
Creates a Map with all the properties of the JSONObject. -
getTypeClass
Returns the JSON type.
Values are Object, String, Boolean, Number(subclasses) & JSONFunction. -
hashCode
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
Tests if a Class represents an array or Collection. -
isArray
Tests if obj is an array or Collection. -
isBoolean
Tests if Class represents a Boolean or primitive boolean -
isBoolean
Tests if obj is a Boolean or primitive boolean -
isDouble
Tests if Class represents a primitive double or wrapper. -
isFunction
Tests if obj is javaScript function.
Obj must be a non-null String and match"^function[ ]?\\(.*\\)[ ]?\\{.*\\}$" -
isFunctionHeader
Tests if obj is javaScript function header.
Obj must be a non-null String and match "^function[ ]?\\(.*\\)$" -
isJavaIdentifier
Returns trus if str represents a valid Java identifier. -
isNull
Tests if the obj is a javaScript null. -
isNumber
Tests if Class represents a primitive number or wrapper. -
isNumber
Tests if obj is a primitive number or wrapper. -
isObject
Tests if obj is not a boolean, number, string or array. -
isString
Tests if Class represents a String or a char -
isString
Tests if obj is a String or a char -
mayBeJSON
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
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
Produce a string from a Number.- Parameters:
n
- A Number- Returns:
- A String.
- Throws:
JSONException
- If n is a non-finite number.
-
quote
Produce a string in double quotes with backslash sequences in all the right places. A backslash will be inserted within invalid input: '<'/, 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
Minimal escape form. -
stripQuotes
Strips any single-quotes or double-quotes from both sides of the string. -
hasQuotes
Returns true if the input has single-quotes or double-quotes at both sides. -
isJsonKeyword
-
testValidity
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
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
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
-
valueToString
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.
-
isBigDecimal
Finds out if n represents a BigInteger- Returns:
- true if n is instanceOf BigInteger or the literal value can be evaluated as a BigInteger
-
isBigInteger
Finds out if n represents a BigInteger- Returns:
- true if n is instanceOf BigInteger or the literal value can be evaluated as a BigInteger
-
isDouble
Finds out if n represents a Double.- Returns:
- true if n is instanceOf Double or the literal value can be evaluated as a Double.
-
isFloat
Finds out if n represents a Float.- Returns:
- true if n is instanceOf Float or the literal value can be evaluated as a Float.
-
isInteger
Finds out if n represents an Integer.- Returns:
- true if n is instanceOf Integer or the literal value can be evaluated as an Integer.
-
isLong
Finds out if n represents a Long.- Returns:
- true if n is instanceOf Long or the literal value can be evaluated as a Long.
-