simple and easy json parser, json generator, and data holder based on JSONArray and JSONObject for android,
like SwiftyJSON but for android
To use JSON you must add it as a dependency in your Gradle build:
Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.amirdew:JSON:v1.0.0'
}
You can create JSON object from string and access data with key() and index() methods.
String simpleJsonString = "{\"id\":1,\"name\":\"A green door\",\"price\":12.5,\"tags\":[\"home\",\"green\"]}";
JSON json = new JSON(simpleJsonString);
//access data
String firstTag = json.key("tags").index(0).stringValue();
Double price = json.key("price").doubleValue();
products json:
[
{
"id": 2,
"name": "An ice sculpture",
"price": 12.50,
"tags": ["cold", "ice"],
"dimensions": {
"length": 7.0,
"width": 12.0,
"height": 9.5
},
"warehouseLocation": {
"latitude": -78.75,
"longitude": 20.4
}
},
{
"id": 3,
"name": "A blue mouse",
"price": 25.50,
"dimensions": {
"length": 3.1,
"width": 1.0,
"height": 1.0
},
"warehouseLocation": {
"latitude": 54.4,
"longitude": -32.7
}
}
]
loop:
for(int i=0; i<products.count(); i++){
json productInfo = products.index(i);
String productName = productInfo.key("name").stringValue();
}
JSON is exception and null free, you can use key() and index() many times without worry about any exception.
int someValue = products.index(8).key("someKey").index(1).key("someOther").intValue();
//someValue = 0
if( products.index(3).key("someKey").isNull() ){
/*...*/
}
if( products.index(1).key("someKey").exist() ){
/*...*/
}
Method | Input type | Return type | Default | Description |
---|---|---|---|---|
key() | String | JSON | - | if object is a dictionary return JSON object with input key |
index() | int | JSON | - | if object is a array return JSON object with input index |
stringValue() | - | String | empty string ("") | return .toString() of object |
intValue() | - | int | 0 | return integer value if possible |
longValue() | - | long | 0 | return long value if possible |
doubleValue() | - | Double | 0 | return Double value if possible |
booleanValue() | - | boolean | false | return true if object is kind of boolean and true or is kind of string and equal "true" |
value() | - | Object | - | return related object |
count() | - | int | 0 | if related object is a dictionary return number of keys, if related object is a array return length of array |
isNull() | - | boolean | - | return true if related object is null |
exist() | - | boolean | - | return true if related object with index or key exists |
getJsonArray() | - | JSONArray | null | return related JSONArray |
getJsonObject() | - | JSONObject | null | return related JSONObject |
You can use JSON.dic() and JSON.array() static methods to generate json string or hold and pass data
JSON generatedJsonObject = JSON.create(
JSON.dic(
"someKey", "someValue",
"someArrayKey", JSON.array(
"first",
1,
2,
JSON.dic(
"emptyArrayKey", JSON.array()
)
)
)
);
String jsonString = generatedJsonObject.toString();
result:
{
"someKey": "someValue",
"someArrayKey": [
"first",
1,
2,
{
"emptyArrayKey": []
}
]
}
note: now its work for first level only
generatedJsonObject.addEditWithKey("someArrayKey","someOtherValue");
result:
{
"someKey": "someValue",
"someArrayKey": "someOtherValue"
}
Method | Input type | Description |
---|---|---|
add() | Object | if current related object is an array add object at end of array |
remove() | Object | if current related object is an array and input object exist, remove it from array |
addWithIndex() | Object, int | if current related object is an array replace input object with object for input index |
removeWithIndex() | int | if current related object is an array remove object for input index |
addEditWithKey() | String, Object | if current related object is a dictionary add input object with input key |
removeWithKey() | String | if current related object is a dictionary remove object with input key |
static create() | Object | create new instance of JSON with input object |
static dic() | Object... | if number of input objects is even create JSONObject use even objects as key and odd obejcts as value |
static array() | Object... | create JSONArray use input objects |