FastJson简单使用



在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用JSON的方式进行数据传输,简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON字符串,出错率就非常大了。并且工作效率也特别低。

我在网上看了一些开源的JSON框架,比如Google提供的Gson,Jackson,FastJson等框架。

经过测试,个人觉得FastJson执行效率比较高,而且简单易用。

FastJson不依赖于第三方包, 直接可以运行在Java JDK1.5之上,FastJson完全支持http://json.org的标准,支持各种JDK类型,包括基本类型、JavaBean、Collection、Map、Enum、泛型等

还支持循环引用。

FastJson项目是开源的:Fastjson代码托管在github.org上,项目地址是 https://github.com/AlibabaTech/fastjson

一个JSON库涉及的最基本功能就是序列化和反序列化。Fastjson支持java bean的直接序列化。使用com.alibaba.fastjson.JSON这个类进行序列化和反序列化。

一。简单的序列化

pubic class UserInfo implements Serializable{
 private String name;
 private int 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;
 }
} 

public class TestOne{

 public static void main(String[] args){
  UserInfo info=new UserInfo();
  info.setName("zhangsan");
  info.setAge(24);
  //将对象转换为JSON字符串
  String str_json=JSON.toJSONString(info);
  System.out.println("JSON="+str_json);
 }

}

二.复杂的数据类型

public static void test2() {

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

  /*JSON序列化,默认序列化出的JSON字符串中键值对是使用双引号,如果需要单引号的JSON字符串,[eg:String jsonString = JSON.toJSONString(map,   SerializerFeature.UseSingleQuotes);]
   *fastjson序列化时可以选择的SerializerFeature有十几个属性,你可以按照自己的需要去选择使用。
   */
  String jsonString = JSON.toJSONString(map);
  System.out.println("JSON=" + jsonString);

}

三.反序列化

public void test3(){

 String json="{\"name\":\"chenggang\",\"age\":24}";
 //反序列化
 UserInfo userInfo=JSON.parseObject(json,UserInfo.class);
 System.out.println("name:"+userInfo.getName()+", age:"+userInfo.getAge());

}
/**泛型的反序列化*/
public static void test4(){
  String json="{\"user\":{\"name\":\"zhangsan\",\"age\":25}}";
  Map<String, UserInfoBean> map = JSON.parseObject(json, new TypeReference<Map<String, UserInfoBean>>(){});
  System.out.println(map.get("user"));
 }

//同理, json字符串中可以嵌套各种数据类型。

四.日期格式化

public void test5(){

  Date date=new Date();
  //输出毫秒值
  System.out.println(JSON.toJSONString(date));
  //默认格式为yyyy-MM-dd HH:mm:ss
  System.out.println(JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat));
  //根据自定义格式输出日期
  System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat));

}

这里举了几个简单的例子, 其它特殊要求可以根据FastJson的方法的说明,进行选择。

FastJson简单使用

时间: 2024-08-01 23:15:26

FastJson简单使用的相关文章

FastJSON 简单使用

FastJSON是一个Java语言编写的高性能,功能完善,完全支持http://json.org的标准的JSON库.多了不说了,百度一下一大把. 在此,简单的总结一下自己用过,测试过的方法. 如果使用Maven,在pom.xml文件加入以下依赖. 1 <dependency> 2 <groupId>com.alibaba</groupId> 3 <artifactId>fastjson</artifactId> 4 <version>

fastjson简单使用demo,@JSONField注解属性字段上与set、get方法上。实体类toString(),实体类转json的区别;_下划线识别

一.demo代码 @JSONField注解属性字段上与set.get方法上.使用@Data注解(lombok插件安装最下方),对属性“笔名”[pseudonym]手动重写setter/getter方法 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; @Data

Android开发 retrofit入门讲解

前言 retrofit基于okhttp封装的网络请求框架,网络请求的工作本质上是 OkHttp 完成,而 retrofit 仅负责网络请求接口的封装.如果你不了解OKhttp建议你还是先了解它在来学习使用retrofit,传送门:Android 开发 框架系列 OkHttp使用详解 Retrofit优势,就是简洁易用,解耦,扩展性强,可搭配多种Json解析框架(例如Gson),另外还支持RxJava.但是,这篇博客不讲解RxJava配合使用的部分,与RxJava的配合使用将在另外一篇博客中讲解.

Android原生json和fastjson的简单使用

android原生操作json数据 主要是两个类 JSONObject 操作对象     JONSArray操作json数组 对象转json 1 //创建学生对象 2 Student student=new Student(); 3 student.setAge(23); 4 student.setClazz("六年级"); 5 student.setName("王二麻子"); 6 //创建JSONObject 7 JSONObject jsonObject=new

使用fastjson转换json的简单例子

pom添加依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.41</version> </dependency> 代码: package JsonTest.JsonTest; import java.util.ArrayList; import java.util.Hash

FastJson的简单使用

pom.xml文件中加入依赖依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> 首先建立两个实体类,Student.Java 和 Teacher.java Student.java 和Teacher.java 的代码如下:

Java FastJson 源码分析(一) 之 简单应用

fastjson是一个性能很好的Java语言实现的JSON解析器和生成器,来自阿里的工程师开发.提供了Java对象快速序列化和发序列化的工具. 主要特点: ?快速FAST(比其它任何基于Java的解析器和生成器更快) ?强大(支持普通JDK类包括任意JavaBean Class.Collection.Map.Date或enum) ?零依赖(没有依赖其它任何类库除了JDK) 具体应用方式: 1.首先在官网上下载fastjson.jar文件,下载方式提供了以下三种: SVN:http://code.

gson和fastjson将json对象转换成javaBean 简单对照

同事离职,项目后端部分的迭代和重构后面由我接手. 今天看项目代码时,发现项目使用了Gson,用于将json字符串转换成javaBean. 以前没使用过Gson,随即,简单入了个们, 想起fastjson也有将json字符串转换成javaBean的API,随即简单比较了下源码. fastjson中的API如下: /** * @since 1.2.9 */ public <T> T toJavaObject(Class<T> clazz) { return TypeUtils.cast

fastjson的简单学习

package com.hanchao.testFastJson; import java.util.HashMap; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; /***********************  * 阿里的F