Json应用案例之FastJson

这几天在网上找关于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());
    }
}

运行结果为:

时间: 2024-10-27 12:05:48

Json应用案例之FastJson的相关文章

JSON数据之使用Fastjson进行解析(一)

据说FastJson是目前最快的解析Json数据的库,而且是国人开发出来的开源库.顶一下,付上官方网址:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2424946 要使用Fastjson,首先需要下载相对应的jar文件,在官网即可下载.附上初学的第一个例子,多多指教: { "statuses":[ { "id": 912345678901, "text": "

JSON工具学习记录--FastJSON循环引用问题

JSON工具学习记录–FastJSON循环引用问题 标签(空格分隔): fastjson 最近基于他人项目做二次开发,遇到了循环引用的问题,简单来说A引用了B,B引用了C,C引用了A,那么转换json就会无休止的转换下去. 更复杂的情况,A中引用了B,B中引用了一个A的集合,比如广告引用了广告类型,广告类型里面又有该类型下的所属广告. 1.构造情景 这种又叫做双向引用,个人感觉这种设计本身就不是很合理,当然还要看具体使用场景了. 广告类: /** * @author Niu Li * @date

Json详解以及fastjson使用教程

Json是一种轻量级的数据交换格式,采用一种“键:值”对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言.在使用Java做Web开发时,不可避免的会遇到Json的使用.下面我们就简单讲一下Json的使用以及fastjson.jar包的使用. 一:JSON形式与语法1.1:JSON对象我们先来看以下数据: { "ID": 1001, "name": "张三", "age": 24}第一个数据就

Android JSON、GSON、FastJson的封装与解析

声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种数据解析的DEMO都用到了下面这个Person类,贴出来: 1 public class Person { 2 private String name; 3 private int age; 4 private String address; 5 6 public Person() { 7 8 }

JSON初体验(三):FastJson解析

JSON解析之FastJson(阿里巴巴解析开源) 特点: Fastjson是一个Java语言编写的高性能功能完善的JSON库,它采用的 是一种"假定有序快速匹配"的算法,把JSON Parse的性能提升到极致, 是目前Java语言中最快的JSON库. 1.将json格式{}转换为Java对象 API: <T> T parseObject(String json,Class<T> classOfT); 步骤: 1.导入fastjson的jar包 2.JSON调用

JSON工具学习记录--FastJSON

最近做项目,总是与json打交道,在用了即可json工具后,个人认为fastJson最好用,很方便,API也清晰可见,所以记录下使用方法,给需要的人提供帮助.(部分摘抄自网络) 一.API入口 Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成. public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArr

json三-------com.alibaba.fastjson

1.需要阿里巴巴的fastjson.jar 2.将json字符串转为JSONObject,通过JSONObject.parseObject(json字符串),取值的话通过json对象的getString(),getIntValue()等等获取JSONObject的值 String student = "{'name':'张三','age':30}" ; JSONObject json = JSONObject.parseObject(student) ; System.out.prin

json解析:[2]fastjson 使用

利用阿里的fastjson包对对象进行 json的转化与解析,本篇为第二篇,第一篇讲述的是利用gson进行json数据解析,地址:jingyan.baidu.com/article/e8cdb32b619f8437042bad53.html 常用类型 类型一:JavaBean 类型二:List<JavaBean> 类型三:List<String> 类型四:List<Map<String,Object>> 将上面的四种数据对象转换成json字符串的方法都是一样

ajax请求json数据案例

今天有这样一个需求,点击六个大洲,出现对应的一些请求信息,展示在下面,请求请求过后,第二次点击就无需请求.如图所示:点击北美洲下面出现请求的一些数据 html代码结构: <div class="conSixmap"> <div class="name conmap01" data-name="beimeizhou"> <a href="javascript:void(0)">北美洲</