Android開源:JSON - 簡單易用的json解析

JSON

簡單易用的json解析,json生成器和基于JSONArray和JSONObject 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();</pre>

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(); }</pre>

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

check index or key is exist or is null:

if( products.index(3).key("someKey").isNull() ){ 
    /.../ 
 }

if( products.index(1).key("someKey").exist() ){ /.../ }</pre>

方法

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

用法 - 生成json,數據保存

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();</pre>

result:

{
  "someKey": "someValue",
  "someArrayKey": [
    "first",
    1,
    2,
    {
      "emptyArrayKey": []
    }
  ]
}

add, edit, remove:

note: now its work for first level only

generatedJsonObject.addEditWithKey("someArrayKey","someOtherValue");

result:

{
  "someKey": "someValue",
  "someArrayKey": "someOtherValue"
}

Available methods - generate, edit, remove

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
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

 

 

 

 本文由用戶 IsabelLandi 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!