fastjson常用方法有哪些?fastjson有哪些特性?

阳光 2021-07-26 16:44:11 java常见问答 7692

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工具网。

推荐阅读:

拼接json字符串的方法是什么?json常用类型是什么?

java打怪物小游戏代码怎么写?实例讲解

java编程培训哪里学?学java有用吗?