org.less4j
Class JSON.Object
java.lang.Object
java.util.AbstractMap
java.util.HashMap
org.less4j.JSON.Object
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, java.util.Map
- Enclosing class:
- JSON
public static class JSON.Object
- extends java.util.HashMap
An extension of HashMap with type-casting convenience methods
that throw JSON.Error or return a typed object.
Synopsis
...
try {
JSON.Object map = (new JSON()).object("{" +
"\"nothing\": null," +
"\"a boolean\": true," +
"\"a big integer\": 2," +
"\"a big decimal\": +1234567.89," +
"\"a double float\": -123456789e-4," +
"\"unicode string"\: \"hello world!\", "+
"\"a list\": [null,true,1,2.0,3e+3]" +
"\"another map\": {}" +
"}");
Boolean b = map.B("test");
BigInteger i = map.I("a big integer");
BigDecimal d = map.D("a big decimal");
Double r = map.F("a double float");
String s = map.S("unicode string");
JSON.Array a = map.A("a list");
JSON.Object o = map.O("another map");
} catch (JSON.Error e) {
System.out.println(e.jstr());
}
The convenience is double. At runtime it distinguishes a JSON
type value error from other type casting allow programs to be
executed like a scripting language against to access a dynamic
object model and continue in Java.
The second advantage for developper is trivial but practical:
most java IDE support autocompletion and namespace browsing by
type. Not having to break the chain for "manual" type casting
helps a lot and make the whole a lot clearer to read and debug.
Copyright © 2006 Laurent A.V. Szyster
- Version:
- 0.30
- See Also:
- Serialized Form
|
Method Summary |
JSON.Array |
A(java.lang.String name)
|
JSON.Array |
A(java.lang.String name,
JSON.Array def)
|
java.lang.Boolean |
B(java.lang.String name)
|
boolean |
B(java.lang.String name,
boolean def)
|
java.math.BigDecimal |
D(java.lang.String name)
|
java.math.BigDecimal |
D(java.lang.String name,
java.math.BigDecimal def)
|
double |
doubleValue(java.lang.String name,
double def)
|
java.lang.Double |
F(java.lang.String name)
|
java.math.BigInteger |
I(java.lang.String name)
|
int |
intValue(java.lang.String name,
int def)
|
JSON.Object |
O(java.lang.String name)
|
JSON.Object |
O(java.lang.String name,
JSON.Object def)
|
java.lang.String |
S(java.lang.String name)
|
java.lang.String |
S(java.lang.String name,
java.lang.String def)
|
| Methods inherited from class java.util.HashMap |
clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, put, putAll, remove, size, values |
| Methods inherited from class java.util.AbstractMap |
equals, hashCode, toString |
| Methods inherited from class java.lang.Object |
getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface java.util.Map |
equals, hashCode |
JSON.Object
public JSON.Object()
A
public final JSON.Array A(java.lang.String name)
throws JSON.Error
- Throws:
JSON.Error
A
public final JSON.Array A(java.lang.String name,
JSON.Array def)
B
public final java.lang.Boolean B(java.lang.String name)
throws JSON.Error
- Throws:
JSON.Error
B
public final boolean B(java.lang.String name,
boolean def)
D
public final java.math.BigDecimal D(java.lang.String name)
throws JSON.Error
- Throws:
JSON.Error
D
public final java.math.BigDecimal D(java.lang.String name,
java.math.BigDecimal def)
doubleValue
public final double doubleValue(java.lang.String name,
double def)
F
public final java.lang.Double F(java.lang.String name)
throws JSON.Error
- Throws:
JSON.Error
I
public final java.math.BigInteger I(java.lang.String name)
throws JSON.Error
- Throws:
JSON.Error
intValue
public final int intValue(java.lang.String name,
int def)
O
public final JSON.Object O(java.lang.String name)
throws JSON.Error
- Throws:
JSON.Error
O
public final JSON.Object O(java.lang.String name,
JSON.Object def)
S
public final java.lang.String S(java.lang.String name)
throws JSON.Error
- Throws:
JSON.Error
S
public final java.lang.String S(java.lang.String name,
java.lang.String def)