主要是用FastJson进行数据解析,其中一个重要的类为JSONObject,
JSONobject是FastJson提供的对象,在api中是用一个私有的常量map进行封装的,实际就是一个map,只不过FastJson对其进行了封装,
添加了很多方便快捷的属性方法。
private final Map<String, Object> map;
在项目中添加maven依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.48</version> </dependency>
先来看下它有哪些常用方法,以及有什么作用:
1.put(String key, Object value)方法,在JSONObject对象中设置键值对在,在进行设值得时候,key是唯一的,如果用相同的key不断设值得时候,保留后面的值。
2.Object get(String key) :根据key值获取JSONObject对象中对应的value值,获取到的值是Object类型,需要手动转化为需要的数据类型
3.int size():获取JSONObject对象中键值对的数量
4.boolean isEmpty():判断该JSONObject对象是否为空
5.containsKey(Object key):判断是否有需要的key值
6.boolean containsValue(Object value):判断是否有需要的value值
7.JSONObject getJSONObject(String key):如果JSONObjct对象中的value是一个JSONObject对象,即根据key获取对应的JSONObject对象;
8.JSONArray getJSONArray(String key) :如果JSONObject对象中的value是一个JSONObject数组,既根据key获取对应的JSONObject数组;
9.Object remove(Object key):根据key清除某一个键值对。
由于JSONObject是一个map,它还具有map特有的两个方法:
10.Set<String> keySet() :获取JSONObject中的key,并将其放入Set集合中
11.Set<Map.Entry<String, Object>> entrySet():在循环遍历时使用,取得是键和值的映射关系,Entry就是Map接口中的内部接口
与String字符串转换:
12.toJSONString() /toString():将JSONObject对象转换为json的字符串
// 对象转JSON串
String jsonString = JSON.toJSONString(object);
// JSON串转JSON对象
JSONObject JSON1 = JSON.parseObject(JSONString);
//获取JSON对象中的键值为phone_code的值
json.getString("phone_code");
//key-value使用单引号
String limeJSON = JSON.toJSONString(lime,SerializerFeature.UseSingleQuotes);
// 日期格式化
Date date = new Date();
// 默认格式为yyyy-MM-dd HH:mm:ss
System.out.println(JSON.toJSONString(date,SerializerFeature.WriteDateUseDateFormat));
//根据自定义格式输出日期
System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat));
//根据key 得到json中的json数组
JSONArray com.alibaba.fastjson.JSONObject.getJSONArray(String key)
//根据下标拿到json数组的json对象
JSONObject com.alibaba.fastjson.JSONArray.getJSONObject(int index)
//根据key拿到json的字符串值
String com.alibaba.fastjson.JSONObject.getString(String key)
//根据key拿到json的int值
int com.alibaba.fastjson.JSONObject.getIntValue(String key)
//根据key拿到json的boolean值
boolean com.alibaba.fastjson.JSONObject.getBooleanValue(String key)
//将map转换成jsonObject
JSONObject itemJSONObj = JSONObject.parseObject(JSON.toJSONString(itemMap));
//将Map类型的itemInfo转换成json,再经JSONObject转换实现。
//将jsonObj转换成Map
Map<String, Object> itemMap = JSONObject.toJavaObject(itemJSONObj, Map.class);