关闭

fastjson 使用

标签: packageimportjson测试代码
895人阅读 评论(0) 收藏 举报
分类:

下载地址

fastjson

测试代码

package org.apache.qpid.contrib.test;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;

public class TestFastjson {

    // fastjson序列化单个对象 与反序列化

    public void test1() {
        Employee e = new Employee("001", "张三", 23, new Date());

        // 序列化
        String jsonStr = JSON.toJSONString(e);
        System.out.println(jsonStr);

        // 反序列化
        Employee emp = JSON.parseObject(jsonStr, Employee.class);
        System.out.println(emp.getName());
    }

    // fastjson序列化list集合 与反序列化

    public void test2() {
        Employee e = new Employee("001", "张三", 23, new Date());
        Employee e2 = new Employee("002", "李四", 29, new Date());

        List<Employee> emps = new ArrayList<Employee>();
        emps.add(e);
        emps.add(e2);

        // fastjson序列化list, 返回来的是一个json数组,由[]包含两个json
        String jsonArryStr = JSON.toJSONString(emps);
        System.out.println(jsonArryStr);

        // //反序列化
        // 法一
        // List<Employee> empList = JSON.parseObject(jsonArryStr, new
        // TypeReference<List<Employee>>(){} );
        // 法二
        List<Employee> empList = JSON.parseArray(jsonArryStr, Employee.class);
        for (Employee employee : empList) {
            System.out.println(employee.getName());
            System.out.println(employee.getBirthDay());
        }

    }

    // fastjson序列化复杂对象 与反序列化

    public void test3() {
        Employee e = new Employee("001", "张三", 23, new Date());
        Employee e2 = new Employee("002", "李四", 29, new Date());

        List<Employee> emps = new ArrayList<Employee>();
        emps.add(e);
        emps.add(e2);

        Dept dept = new Dept("d001", "研发部", emps);

        // 序列化
        String jsonStr = JSON.toJSONString(dept);
        System.out.println(jsonStr);

        // 反序列化
        Dept d = JSON.parseObject(jsonStr, Dept.class);
        System.out.println(d.getName());

        // json转map
        // 法一
        Map<String, Object> map1 = JSON.parseObject(jsonStr);// 返回JSONObject,JSONObject实现Map<String,
                                                                // Object>接口
        // 法二
        // Map<String, Object> map1 = (Map<String, Object>)JSON.parse(jsonStr);
        for (String key : map1.keySet()) {
            System.out.println(key + ":" + map1.get(key));
        }
    }

    // fastjson 的 JSONObject的使用

    public void test4() {
        Employee e = new Employee("001", "张三", 23, new Date());

        // 序列化
        String jsonStr = JSON.toJSONString(e);
        System.out.println(jsonStr);

        // 反序列化 (可以和test1比较)
        JSONObject emp = JSON.parseObject(jsonStr, JSONObject.class);
        System.out.println(emp);
        System.out.println(emp.getString("name"));

        // 再放一个Employee不存在的字段
        emp.put("salary", "8000");
        System.out.println(emp.toJSONString());
        System.out.println(emp.get("salary"));

    }

    // fastjson序列化字符串

    public void test5() {

        List<String> strs = new ArrayList<String>();
        strs.add("hello");
        strs.add("world");
        strs.add("banana");

        // 序列化
        String jsonStr = JSON.toJSONString(strs);
        System.out.println(jsonStr);

        // 反序列化
        List<String> strList = JSON.parseObject(jsonStr,
                new TypeReference<List<String>>() {
                });
        // List<String> strList = JSON.parseArray(jsonStr,
        // String.class);//等同于上一句
        for (String str : strList) {
            System.out.println(str);
        }
    }

    // fastjson过滤字段

    public void test6() {

        Employee e = new Employee("001", "张三", 23, new Date());
        Employee e2 = new Employee("002", "李四", 29, new Date());

        List<Employee> emps = new ArrayList<Employee>();
        emps.add(e);
        emps.add(e2);

        // 构造过滤器
        SimplePropertyPreFilter filter = new SimplePropertyPreFilter(
                Employee.class, "id", "age");
        String jsonStr = JSON.toJSONString(emps, filter);

        System.out.println(jsonStr);
    }

    // fastjson 日期处理

    public void test7() {

        Date date = new Date();

        String dateStr = JSON.toJSONString(date);
        System.out.println(dateStr);

        String dateStr2 = JSON.toJSONStringWithDateFormat(date,
                "yyyy-MM-dd HH:mm:ss");
        System.out.println(dateStr2);

        // 序列化实体
        Employee emp = new Employee("001", "张三", 23, new Date());

        // 法一
        String empStr = JSON.toJSONStringWithDateFormat(emp,
                "yyyy-MM-dd HH:mm:ss");
        System.out.println(empStr);

        // 法二
        String empStr2 = JSON.toJSONString(emp,
                SerializerFeature.WriteDateUseDateFormat);
        System.out.println(empStr2);

        // 法三
        SerializeConfig config = new SerializeConfig();
        config.put(Date.class, new SimpleDateFormatSerializer(
                "yyyy年MM月dd日 HH时mm分ss秒"));
        String empStr3 = JSON.toJSONString(emp, config);
        System.out.println(empStr3);
    }

    // fastjson 去掉值的双引号 实现JSONAware接口

    public void test8() {
        // 见同级目录的Function.java
    }

    // fastjson 注解形式 (别名命名, 过滤字段, 日期格式)

    public void test9() {
        Student stu = new Student("001", "张三", 23, new Date());
        String jsonStr = JSON.toJSONString(stu);
        System.out.println(jsonStr);

    }

}

去除双引号

package org.apache.qpid.contrib.test;

import java.util.HashMap;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONAware;
/**
 * 实现 JSONAware
 * @author zdc
 *
 */
public class Function implements JSONAware {

    private String functionString;

    public Function() {
    }

    public Function(String functionString) {
        this.functionString = functionString;
    }

    @Override
    public String toJSONString() {
        return this.functionString;
    }

    public String getFunctionString() {
        return functionString;
    }

    public void setFunctionString(String functionString) {
        this.functionString = functionString;
    }

    public static void main(String[] args) {
        Function click = new Function("function(){alert(1);}");

        HashMap<String, Object> json = new HashMap<String, Object>();
        json.put("name", "tony");
        json.put("click", click);
        String jsonString = JSON.toJSONString(json);
        System.out.println(jsonString);
    }

}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

fastjson的常用使用方法

本文是利用阿里巴巴封装的FastJSON来转换json字符串的(导入jar包)。例子如下: [java] view plain copy     import com.aliba...
  • li758568825
  • li758568825
  • 2017-02-08 02:02
  • 597

【Android 应用开发】 FastJson 使用详解

FastJson 使用详解
  • han1202012
  • han1202012
  • 2014-11-12 16:42
  • 14322

FastJSON 简单使用

FastJSON是一个Java语言编写的高性能,功能完善,完全支持http://json.org的标准的JSON库。多了不说了,百度一下一大把。 在此,简单的总结一下自己用过,测试过的方法。 如果...
  • flysun3344
  • flysun3344
  • 2017-01-24 15:02
  • 2066

fastjson 使用方法

Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器。 1、遵循http://json.org标准,为其官方网站收录的参考实现之一。 2、功能qiang打,支持JDK的各种类...
  • zeuskingzb
  • zeuskingzb
  • 2013-12-21 16:20
  • 211962

FastJson关于java的使用

FastJson关于java的使用 介绍 Fastjson是阿里巴巴公司用java语言编写的json 的编辑解析器,个人感觉非常好用。 官方网址:http://code.alibabatech.com...
  • yunxiaoxiaoyun
  • yunxiaoxiaoyun
  • 2013-11-18 23:48
  • 12241

FastJson 使用详解

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50315927 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有...
  • xx326664162
  • xx326664162
  • 2015-12-15 15:54
  • 1714

FastJson的基本使用

在开发Android的过程中,如果我们经常与服务器打交道,更新数据等等,那么json必然是个好的数据格式,但是有了json我们要解析它,使用原生的解析也可以,但是很不高效,所以这里介绍两种json数据...
  • wx_962464
  • wx_962464
  • 2014-07-09 23:39
  • 62448

fastjson的基本使用方法

1 fastjson主要的APIfastjson入口类是com.alibaba.fastjson.JSON, 主要API是JSON.toJSONString和parseObject,使用fastjso...
  • codershamo
  • codershamo
  • 2016-07-22 14:42
  • 3281

Redis下实现序列化保存和使用FastJson的处理(java)

1.在不使用Redis的情况下;   我们一般从数据库中查到数据,然后放进List,或者是User,然后使用java的框架,放数据到指定位置。 或者是从数据库中查到数据,放到List,然后拼接js...
  • shenbushen
  • shenbushen
  • 2016-06-30 14:55
  • 3284

fastjson使用实例

package junit.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; im...
  • earbao
  • earbao
  • 2014-09-21 12:05
  • 13531
    个人资料
    • 访问:154287次
    • 积分:3212
    • 等级:
    • 排名:第12458名
    • 原创:139篇
    • 转载:17篇
    • 译文:19篇
    • 评论:15条
    文章分类
    最新评论
    我的博客
    我的搜索