FastJson---重要的类为JSONObject

北战南征 提交于 2020-03-10 13:58:38

主要是用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);

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!