
简单易用的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 dataString 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 = 0check index or key is exist or is null:
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": [] } ]}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 |
Star10Fork1
项目描述:simple and easy json parser, json generator, and data holder based on JSONArray and JSONObject for android —查看更多内容...
本文标签: Android开发技巧json解析Android数据存储
转自 SUN'S BLOG - 专注互联网知识,分享互联网精神!
原文地址: 《简单易用的json解析,json生成器和基于JSONArray和JSONObject for Android的数据存储》
原文地址:http://whosmall.com/?post=290
新闻热点
疑难解答