Fastjson是一个Java语言编写的高性能功能完善的JSON库。可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。那fastjson常用方法有哪些?下面来我们就来给大家讲解一下。
一、解析json字符串并获取数据
1、把json字符串转换为实体类
1.1、直接解析为对象(支持深度解析)
T t = JSON.parseObject(jsonstr, T.class); // 解析{...}为对象 Listlist = JSON.parseArray(jsonstr, T.class); // 解析[{},{}...]为集合
1.2、解析为JSON对象
1.2.1、如果不知道json字符串具体是JSONObject还是JSONArray可以使用
Object obj = JSON.parse(jsonstr); // obj可能为String、JSONArray、JSONObject
1.2.2、如果确定字符串为JSONObject类型
JSONObject parseObject = JSON.parseObject(jsonstr);
1.2.3、如果确定字符串为JSONArray类型
JSONArray jsonarry = JSON.parseArray(jsonstr);
2.获取JSONArray对象中的数据
2.1、获取JSONArray中的单个元素作为JSONObject
JSONObject jsonobject = JSONArray.get(i);
2.2、获取JSONArray中的单个元素作为解析后的实体类(直接封装为实体类)
T t = JSONArray.getObject(i, T.class);
2.3、遍历JSONArray
JSONArray jsonarray = JSON.parseArray(jsonstr); for (int i = 0; i < jsonarray.size(); i++) { < p = "" > JSONObject jsonobject = JSONArray.get(i); T t = JSONArray.getObject(i, T.class); }
3.获取JSONObject对象中的数据
3.1、获取JSONObject中的数据
Byte byte1 = parseObject.getByte(key); byte byteValue = parseObject.getByteValue(key); Short short1 = parseObject.getShort(key); short shortValue = parseObject.getShortValue(key); Integer integer = parseObject.getInteger(key); int intValue = parseObject.getIntValue(key); Long long1 = parseObject.getLong(key); long longValue = parseObject.getLongValue(key); Float float1 = parseObject.getFloat(key); float floatValue = parseObject.getFloatValue(key); Double double1 = parseObject.getDouble(key); double doubleValue = parseObject.getDoubleValue(key); // 以下四个最常用.. String string = parseObject.getString(key); JSONArray jsonArray = parseObject.getJSONArray(key); JSONObject jsonObject = parseObject.getJSONObject(key); Object object = parseObject.get(key); // object类型为JSONArray或JSONObject或String
3.2、遍历JSONObject
SetkeySet = JSONObject.keySet(); for (String key: keySet) { Object value = keySet.get(key); // value类型为JSONArray或JSONObject或String }
二、格式化对象为json字符串
1、默认对象转为json字符串的方法
JSON.toJSONString(Object);
2、上诉方法可以把对象转为JSON格式的字符串,但是存在部分缺陷.推荐使用以下转换方式
SerializerFeature quotefieldnames = SerializerFeature.QuoteFieldNames; // 输出的结果不带双引号 SerializerFeature writemapnullvalue = SerializerFeature.WriteMapNullValue; // 打印出null值得字段 SerializerFeature writenullstringasempty = SerializerFeature.WriteNullStringAsEmpty; // null值字段显示为"" SerializerFeature writenulllistasempty = SerializerFeature.WriteNullListAsEmpty; // null值数组显示为[] JSON.toJSONString(obj, quotefieldnames, writemapnullvalue, writenullstringasempty, writenulllistasempty);
fastjson有哪些特性?
1、提供服务器端、安卓客户端两种解析工具,性能表现较好。
2、提供了 toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。
3、允许转换预先存在的无法修改的对象(只有class、无源代码)。
4、Java泛型的广泛支持。
5、允许对象的自定义表示、允许自定义序列化类。
6、支持任意复杂对象(具有深厚的继承层次和广泛使用的泛型类型)。
Fastjson 可以操作任何 Java 对象,即便是一些预先存在的没有源码的对象,也是可以操作的,因此Fastjson 的出现给开发人员带来了极大的便利。最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: