org.less4j
Class JSON.Object

java.lang.Object
  extended by java.util.AbstractMap
      extended by java.util.HashMap
          extended by 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

Constructor Summary
JSON.Object()
           
 
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
 

Constructor Detail

JSON.Object

public JSON.Object()
Method Detail

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)