加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FastJson简单使用

发布时间:2020-12-16 18:41:18 所属栏目:百科 来源:网络整理
导读:?? 在工作中,常常客服端须要和服务端进行通信,眼下非常多项目都採用JSON的方式进行传输数据。简单的參数能够通过手动拼接JSON字符串,但假设请求的參数过多,採用手动拼接JSON字符串,出错率就非常大了。并且工作效率也特别低。 我在网上看了一些开源的JSO
??

在工作中,常常客服端须要和服务端进行通信,眼下非常多项目都採用JSON的方式进行传输数据。简单的參数能够通过手动拼接JSON字符串,但假设请求的參数过多,採用手动拼接JSON字符串,出错率就非常大了。并且工作效率也特别低。


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

经过測试,个人认为FastJson执行效率比較高。并且简单易用。
FastJson不依赖于第三方包, 直接能够执行在Java JDK1.5之上,FastJson全然支持http://www.voidcn.com/tag/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的方法的说明,进行选择。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读