首页 > 学院 > 开发设计 > 正文

Json应用案例之FastJson

2019-11-14 23:21:47
字体:
来源:转载
供稿:网友
Json应用案例之FastJson 2015-03-18 16:25 by 杰瑞教育, ... 阅读, ... 评论, 收藏, 编辑

这几天在网上找关于Json的一些案例,无意当中找到了一个我个人感觉比较好的就是阿里巴巴工程师写的FastJson。

package com.jerehedu.fastjson;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Vector;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.serializer.SerializerFeature;import com.jerehedu.entity.Userinfo;/** * fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。 主要特点: * 1.快速FAST(比其它任何基于Java的解析器和生成器更快,包括jackson) 强大(支持普通JDK类包括任意Java Bean * 2.Class、Collection、Map、Date或enum) 零依赖(没有依赖其它任何类库除了JDK) *  */public class TestFastJson {    public static void main(String[] args) {        String json = "{/"name/":/"chenggang/",/"age/":24}";        String arrayAyy = "[[/'马云',50],null,[/'马化腾',30]]";        Entity2json("zhangsan", 24);        list2Json();        Complexdata();        Deserialization(json);        DateFormate(new Date());        Json2Eetity(json);        String2JSONArray(arrayAyy);    }    // 实体转为Json    public static void Entity2json(String name, int age) {        Userinfo info = new Userinfo(name, age);        String str_json = JSON.toJSONString(info); //        System.out.PRintln("实体转化为Json" + str_json);    }

运行结果为:

直接将我们的实体转化为了Json格式。

    // list转Json    public static void list2Json() {        List<Userinfo> list = new ArrayList<Userinfo>();        Userinfo userinfo1 = new Userinfo("lisi", 15);        Userinfo userinfo2 = new Userinfo("wangwu", 16);        list.add(userinfo1);        list.add(userinfo2);        String json = JSON.toJSONString(list, true);        System.out.println("List集合转json格式字符串 :" + json);    }运行结果为:       // 字符数组转化为JSon    private static void String2JSONArray(String arrayAyy) {        JSONArray array = JSONArray.parseArray(arrayAyy);        System.out.println("数组:" + array);        System.out.println("数组长度: " + array.size());        Collection nuCon = new Vector();        nuCon.add(null);        array.removeAll(nuCon);        System.out.println("数组:" + array);        System.out.println("数组长度: " + array.size());    }

运行结果为:

        // 复杂数据类型    public static void Complexdata() {        HashMap<String, Object> map = new HashMap<String, Object>();        map.put("username", "zhangsan");        map.put("age", 24);        map.put("sex", "男");        // map集合        HashMap<String, Object> temp = new HashMap<String, Object>();        temp.put("name", "xiaohong");        temp.put("age", "23");        map.put("girlInfo", temp);        // list集合        List<String> list = new ArrayList<String>();        list.add("爬山");        list.add("骑车");        list.add("旅游");        map.put("hobby", list);        String jsonString = JSON.toJSONString(map);        System.out.println("复杂数据类型:" + jsonString);    }

运行结果为:

复杂数据类型:{"age":24,"girlInfo":{"age":"23","name":"xiaohong"},"hobby":["爬山","骑车","旅游"],"sex":"男","username":"zhangsan"}

    public static void Deserialization(String json) {        Userinfo userInfo = JSON.parSEObject(json, Userinfo.class);        System.out.println("姓名是:" + userInfo.getName() + ", 年龄是:"                + userInfo.getAge());    }

  解析Json字符串,运行结果为:

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

格式化日期,运行结果为:

    // Json转为实体    private static void Json2Eetity(String json) {        Userinfo userInfo = JSON.parseObject(json, Userinfo.class);        System.out.println("输出对象的地址:" + userInfo.toString());        System.out.println("输出对象的名字:" + userInfo.getName());    }}

运行结果为:

  FastJson还是比较好用的一个解析格式,不管是转化为Json,还是解析Json。Github地址为https://github.com/AlibabaTech/fastjson。

作者:杰瑞教育出处:http://www.VEVb.com/jerehedu/本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表