fastjson有哪些方法?fastjson常用方法介绍

阳光 2022-08-08 15:54:13 java常见问答 5797

Fastjson可以将 Java 对象转换为 JSON 格式,也可以将 JSON 字符串转换为 Java 对象,所以在企业项目开发中经常会使用到,为了能够更好的使用fastjson,我们需要掌握好fastjson的使用方法,那fastjson有哪些方法?下面来我们就来给大家讲解一下。

fastjson有哪些方法.jpg

fastjson中最常用的就是JSON 类和JSONObject类,下面说一下它们的简单使用:

一、JSON类

JSON的方法基本都是静态方法,可以直接调用。它的所有方法可以分为两大类:

1. 将对象转成json字符串;

2. 将json字符串转成对象。

对象转json字符串

public static String toJSONString(Object object)

任何对象都可以使用这个方法转化成json字符串。

User user = new User("张三", "admin");
String json = JSON.toJSONString(user); // {"password":"admin","userName":"张三"}
Map < String, Object > map = new HashMap < String, Object > ();
map.put("userName", "张三");
map.put("password", "admin");
String json = JSON.toJSONString(map); // {"password":"admin","userName":"张三"}
List < User > userList = new ArrayList < User > ();
userList.add(new User("张三", "admin"));
userList.add(new User("张三1", "admin1"));
json = JSON.toJSONString(userList); //[{"password":"admin","userName":"张三"},{"password":"admin1","userName":"张三1"}]

toJSONString方法会将日期转成时间戳,要想将日期转化成指定格式的字符串,可以使用toJSONStringWithDateFormat

User user = new User("张三","admin",new Date());
json = JSON.toJSONStringWithDateFormat(user, "yyyy-MM-dd HH:mm:ss");// 
{"birthday":"2017-08-11 11:13:19","password":"admin","userName":"张三"}

JSON里面有DEFFAULT_DATE_FORMAT:public static String DEFFAULT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";,可以直接使用:

JSON.toJSONStringWithDateFormat(user, JSON.DEFFAULT_DATE_FORMAT);

json对象串转对象

public staticT parseObject(String text, Classclazz)
public static JSONObject parseObject(String text)
String json = JSON.toJSONString(new User("张三","admin")); // 先弄一个json字符串User 
user = JSON.parseObject(json, User.class);System.out.println(user); 
//User{userName='张三', password='admin', birthday=null}
// Mapmap = JSON.parseObject(json,Map.class);Mapmap = JSON.parseObject(json);System.out.println(map); // 
{password=admin, userName=张三}

注意上面的例子,转成Map时可以缺省第二个参数。因为parseObject(String text) 将json字符串转为JSONObject ,而JSONObject又实现了Map,因此可以直接转化成Map

二、JSONObject类

它继承了JSON,并实现了Map:public class JSONObject extends JSON implements Map

因此可以调用JSON里面的所有方法,还可以像Map那样使用。

JSONObject 类创建了 Map对象,当操作JSONObject的时候,其实是调用了Map的方法。

public JSONObject(int initialCapacity, boolean ordered)
{
    if (ordered)
    {
        map = new LinkedHashMap < String, Object > (initialCapacity); // 按照放的先后排序
    }
    else
    {
        map = new HashMap < String, Object > (initialCapacity); // 按照字母排序
    }
}

使用举例:

JSONObject jsonObject = new JSONObject();
jsonObject.put("userName", "张三");
jsonObject.put("password", "admin");
System.out.println(jsonObject.toJSONString()); //{"password":"admin","userName":"张三"}
jsonObject = new JSONObject(true); //创建一个能排序的JSONObject
jsonObject.put("userName", "张三");
jsonObject.put("password", "admin");
System.out.println(jsonObject.toJSONString()); //{"userName":"张三","password":"admin"}
User user = jsonObject.toJavaObject(User.class);
System.out.println(user); //User{userName='张三', password='admin', birthday=null}

Fastjson其实就是一个Java语言编写的高性能功能完善的JSON库,而Fastjson常用的方式就是JSON 类和JSONObject类,所以我们需要掌握其方法才能运用在开发中!最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

java线上培训班学费一般多少?java线上线下培训有什么区别?

Java代码怎么写?Java写代码有哪些技巧?

java写函数的快捷方式有哪些?Java有哪些常用快捷键?