Throw JSON at the wall!
Another Java implementation of a JSON data structure but this time for JavaScript programmers.
Those familiar with JSON index accessing will recognize this pattern.
Most object methods have shortened named versions.
1 param = traverse to that property and do (selector)
2 param = set selected value as 2nd param
Here is the sample JSON we will used for examples.
myObj = {
"glossary": {
"title": "example glossary",
"list":[ 10, 12, 32 ]
}
}
Creating a JSO (JavaScript Object)
JSO myJSO = new JSO(myObj);
All of the following lines will get the same value at title.
String title = myJSO.traverse("glossary").traverse("title").get();
String title = myJSO.j("glossary").j("title").g();
String title = myJSO.j("glossary").g("title");
String title = myJSO.g("glossary.title");
String title = myJSO.j("glossary.title").g();
These will set myObj.glossary.title
= "asdf"
myJSO.traverse("glossary").traverse("title").set("asdf");
myJSO.j("glossary").j("title").s("asdf");
myJSO.j("glossary").s("title", "asdf");
myJSO.s("glossary.title", "asdf");
myJSO.j("glossary.title").s("asdf");
All variations still apply
double myNum = myJSO.j("glossary.list").g(0);
double myNum = myJSO.j("glossary.list").g("0");
JSO myNewJSO = myJSO.j("glossary");
JSO myRoot = myNewJSON.root();
JSO myRoot = myNewJSON.r();
//myRoot equals myJSO
JSO myParentJSO = myJSO.j("glossary").parent();
JSO myParentJSO = myJSO.j("glossary").p();
//myParentJSO equals myJSO
JSO[] children = myJSO.j("glossary").children();
JSO[] children = myJSO.j("glossary").c();
//children = [JSO, JSO]
There are more types available. Reference is not completed.
int type = myJSO.type();
//type == JSO.TYPE_OBJECT
int type = myJSO.j("list").type();
//type == JSO.TYPE_ARRAY
int type = myJSO.j("glossary.title").type();
//type == JSO.TYPE_STRING
All Types: TYPE_OBJECT; TYPE_ARRAY; TYPE_NUMBER; TYPE_BOOLEAN; TYPE_FUNCTION; TYPE_STRING; TYPE_UNDEFINED; TYPE_NULL;
JSO found = myJSO.find("title");
JSO found = myJSO.find("glossary.title");
JSO found = myJSO.f("glossary.title");
no spaces, no tabs, no line-breaks
String JSON = myJSO.stringify();
spaces, tabs, line-breaks for readability
String prettyJSON = myJSO.toString();