1. 前言
说一下背景需求:
一般使用jackson等等类库都是直接与bean类相关联,一般都是:XX.readValue(jsonData,Bean.class),然后这些类库自动封装Bean的实体;
这一点错都没有,但是,这仅适用于数据都是自己的,那调用其他接口返回来的数组如何来做?
还专门写一个对应的bean类,然后调用方法?某方面来说也还行,但是如果数据多,并且我只需要某些数据的时候如何来做?
经过我这Java半吊子的实践,使用阿里的FastJson貌似可以到达要求;
当然,这也许不是很好的实践,但就目前来说,我觉得还不错;
2. 使用
1、Maven依赖
<!--fast json-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
2、使用
String string = "这是某个json数据";
JSONObject jsonObject = JSON.parseObject(string);//得到jsonObject对象;
上一步得到的jsonObject后,如果你的json数据是:
{"msg":"ok","state":1,"id":"123123","share_user":"xxxsfad","size":"0","share_date":"2019-04-30 16:03:06","is_dir":1,"filename":"xxxxx"}
这样的,没有涉及到数组,那么更简单了:
jsonObject.getString("xxx");
jsonObject.getString("xxxx");
jsonObject.getDate("share_date");
//....
就可以得到值了,当然,万一有数据,那么:
JSONArray jsonArray = jsonObject.getJSONArray();
for (Object o : jsonArray) {
}
还是调用getJSONArray,然后循环处理即可!!
是不是很方便!
当然,我还是更喜欢PHP的那种处理JSON,简单强大粗暴!
一个json_decode(xxx,true)
走天下!!