主要是net.minidev.json和jayway.JsonPath包的运用
net.minidev.json
JSONValue
parse:
- public static java.lang.Object parse(String/Reader/byte[]/inputsteam s)
- Returns: Instance of the following: JSONObject, JSONArray, String, java.lang.Number, java.lang.Boolean, null
- 参数还可以跟一个map to,作用貌似是将java映射到一个class里面去
- 如果需要抛出exception可以用parseWithException
常见用法
12345object obj = (Object) JSONValue.parse(str);if (obj == null || !(obj instanceof JSONObject)) return error;else {//这里一般我们是知道这个读出来的是jsonobject,当然如果原本应该是jsonarray之类的我们要改if。//do sth.}
toJSONString
- public static String toJSONString(Object value)或
- public static String toJSONString(Object value, JSONStyle compression)
- 传入一个Object,转化为string。commpression表示压缩类型,暂时没看
isValidJson
- public static boolean isValidJson(Reader/String in) throws IOException
- 判断是不是json格式的object
JSONObject
首先要理解它extend一个hashmap
JSONObject()/JSONObject(Map
) - 初始化
merge(JsonObj o1, Object o2)
- 其实第二个参数必须是instantof JSONobj或则null,否则会报error
toJSONString
JSONArray
继承自ArrayList
- merge(Obejct o2)
- o2可以是jsonobj也可以是jsonarray
JSONNavi
这个类主要提供一些操作。更多例子
|
|
JsonPath
json是树形结构,所以jsonpath就是指的树上的路径
首先jsonpath有两种写法:
dot: $.store.book[0].title
bracket:$['store']['book'][0]['title']
读取:
|
|
一种更有效率的读取,通过设置context保存上下文信息
|
|
设置filte:
|
|
他的手册写的就不错,可以直接看手册。minidev找不到手册啊,只能看api,还是1.x版的,我们都用2.x了,估计写的时候还是要看源码。。。
本文采用创作共用保留署名-非商业-禁止演绎4.0国际许可证,欢迎转载,但转载请注明来自http://thousandhu.github.io,并保持转载后文章内容的完整。本人保留所有版权相关权利。