欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

浅谈fastjson的常用使用方法

程序员文章站 2024-03-13 13:02:09
如下所示: package demo; import java.util.arraylist; import java.util.collection;...

如下所示:

package demo;

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 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);
  }

  // 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);
  }

  public static void deserialization(string json) {
    userinfo userinfo = json.parseobject(json, userinfo.class);
    system.out.println("姓名是:" + userinfo.getname() + ", 年龄是:"
        + userinfo.getage());
  }

  // 格式话日期
  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());
  }
}

以上demo所用到的实体类:

package entity;

public class userinfo {
  private static final long serialversionuid = 1l;
  private string name;
  private int age;

  
  public userinfo() {
    super();
  }

  public userinfo(string name, int age) {
    super();
    this.name = name;
    this.age = age;
  }

  public void setname(string name) {
    this.name = name;
  }

  public string getname() {
    return name;
  }

  public void setage(int age) {
    this.age = age;
  }

  public int getage() {
    return age;
  }
}

以上这篇浅谈fastjson的常用使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。