Fastjson常用方法

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本,boolean参数true能设置格式,false则不能
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)

代码演示:

// 实体类转换成json
    public static void voToJson() {

        UserInfo user = new UserInfo();
        user.setName("张三");
        user.setCar(null);
        user.setLike(new String[] { "吃", "喝" });
        // 注意:UserInfo中所有的属性都会显示出来,没有set的以默认值的方式显示(值为null的除外)
        String jsonstr = JSON.toJSONString(user);
        System.out.println("实体类转json格式字符串 :" + jsonstr);
    }

    // list集合的转换
    public static void listToJson() {

        List<UserInfo> list = new ArrayList<UserInfo>();

        UserInfo userinfo1 = new UserInfo();
        UserInfo userinfo2 = new UserInfo();
        userinfo1.setAge(12);
        userinfo2.setAge(20);

        list.add(userinfo1);
        list.add(userinfo2);

        String json = JSON.toJSONString(list, true);
        System.out.println("List集合转json格式字符串 :" + json);
    }

    // 字符数组JSON转化为数组
    public static void StringArrayToJSON() {

         String s = "[{\"name\":\"aa\",\"age\":10},{\"name\":\"bb\",\"age\":20}]";  

        List<UserInfo> list = JSON.parseArray(s, UserInfo.class);
        for (UserInfo ui:list) {

            System.out.println(ui.getName());
        }

    }

    // 复杂数据类型
    public static void Complexdata() {
        //map集合1
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("username", "zhangsan");
        map.put("age", 24);
        map.put("sex", "男");

        // map集合2
        HashMap<String, Object> temp = new HashMap<String, Object>();
        temp.put("name", "xiaohong");
        temp.put("age", "23");

        //map集合2装map集合1中
        map.put("girlInfo", temp);

        // list集合
        List<String> list = new ArrayList<String>();
        list.add("爬山");
        list.add("骑车");
        list.add("旅游");
        //map集合1装了List集合
        map.put("hobby", list);

        String jsonString = JSON.toJSONString(map);
        System.out.println("复杂数据类型:" + jsonString);
    }

    // JSON转成实体类
    public static void Deserialization() {
        String json = "{\"name\":\"cc\",\"age\":24}";
        UserInfo userInfo = JSON.parseObject(json, UserInfo.class);
        System.out.println("姓名是:" + userInfo.getName() + ", 年龄是:"
                + userInfo.getAge());
    }

    // 格式化日期
    public static void DateFormate() {
        Date d = new Date();
        System.out.println("时间:" + d);
        System.out.println("输出毫秒值:" + JSON.toJSONString(d));
        System.out.println("默认格式为:"
                + JSON.toJSONString(d,
                        SerializerFeature.WriteDateUseDateFormat));
        System.out.println("自定义日期:"
                + JSON.toJSONStringWithDateFormat(d, "yyyy-MM-dd",
                        SerializerFeature.WriteDateUseDateFormat));
    }

    // Json转为实体
    public static void Json2Eetity() {
        String json = "{\"name\":\"cc\",\"age\":24}";
        UserInfo userInfo = JSON.parseObject(json, UserInfo.class);
        System.out.println("输出对象的地址:" + userInfo.toString());
        System.out.println("输出对象的名字:" + userInfo.getName());
    }
时间: 2024-08-25 19:53:12

Fastjson常用方法的相关文章

FastJson中JSONObject用法及常用方法总结

最近一直有用到解析各种数据,主要是用FastJson进行数据解析,其中一个重要的类为JSONObject,今天有时间,所以进行总结一下: JSONobject是FastJson提供的对象,在api中是用一个私有的常量map进行封装的,实际就是一个map,只不过FastJson对其进行了封装, 添加了很多方便快捷的属性方法. private final Map<String, Object> map; 在项目中添加maven依赖 <dependency> <groupId>

fastjson的常用方法

/** * 解析对象形式的json字符串 */ public static void test1() { String jsonStr = "{\"JACKIE_ZHANG\":\"张学友\",\"ANDY_LAU\":\"刘德华\",\"LIMING\":\"黎明\",\"Aaron_Kwok\":\"郭富城\"}"; JSO

Java的Json解析包FastJson使用

阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser.包括自称最快的JackJson:功能强大,完全支持Java Bean.集合.Map.日期.Enum,支持范型,支持自省:无依赖,能够直接运行在Java SE 5.0以上版本:支持Android:开源 (Apache 2.0) 源码地址:https://github.com/alibaba/fastj

【幻化万千戏红尘】qianfengDay29-Json解析、Gson解析、FASTJSON解析基础学习:

课程回顾: XML:可扩展的标记语言跨平台.跨网络.跨编程语言描述数据作用:1.传输数据2.配置文件3.Android的布局文件 解析XML:1.SAX2.PULL 创建类 今日内容:JSON:JavaScript Object Notation就是符合一定格式的字符串是轻量级,数据交互的格式目前互联网中使用范围最为广泛的数据交互的格式跨平台.跨网络.跨编程语言JSON的规则:{}---->对象,内部只能是属性组成[]---->数组,内部只能是元素组成""---->属

fastjson的常用用法以及自定义排序

fastJson的四种常用方法 JSON 转 POJO public static <T> T getObject(String pojo, Class<T> tclass) { return JSONObject.parseObject(pojo, tclass); } POJO 转 JSON public static <T> String getJson(T tResponse){ return JSONObject.toJSONString(tResponse)

利用fastjson解析json并通过js&amp;ajax实现页面的无跳转刷新

1.json是一种优秀的数据格式,在移动开发和web开发中经常用到,本例中通过一个小案例讲解如何通过alibaba的开源框架fastjson来解析jason数据格式并通过js实现无跳转刷新 2,新建一个web项目,这是我的项目:我这里直接用servlet写的 注意导包,我这里到了很多无用的包,其实主要的包是下面几个: 这个三个包是必须的,其他都是开发基本web的常用包 3.创建一个domain: package com.keson.domain; import com.thoughtworks.

从头认识java-15.2 Collection的常用方法

这一章节我们来介绍一下Collection的常用方法. 我们下面以ArrayList为例. package com.ray.ch14; import java.util.ArrayList; import java.util.Iterator; public class Test { public static void main(String[] args) { ArrayList<Integer> rtnList = new ArrayList<Integer>(); rtnL

Android FastJson与不规范JSON引发的血案

去公司实习了,没多少时间更博客了,距离上一篇博客也有一个来月了.看标题,应该可以看出,这篇文章是讲一个坑,以及如何填坑. 坑是什么?有两个坑,其一是fastjson的bug,其二是不规范的json字符串.如何填坑,不要着急,后文详细说明. 首先,我们看一个json字符串 { "doubleParam": 4.875, "floatParam": 2.76, "extra": { "doubleParam": 12.23, &q

java中String的常用方法

java中String的常用方法1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len=s.length(); 2.charAt() 截取一个字符 例:char ch; ch="abc".charAt(1); 返回'b' 3. getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[]