FastJson简单使用(转载)

前端之家收集整理的这篇文章主要介绍了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这个类进行序列化和反序列化。


一。简单的序列化

[java] view plain copy
  1. pubicclassUserInfoimplementsSerializable{
  2. privateStringname;
  3. privateintage;
  4. publicvoidsetName(Stringname){
  5. this.name=name;
  6. }
  7. publicStringgetName(){
  8. returnname;
  9. }
  10. voidsetAge(intage){
  11. this.age=age;
  12. intgetAge(){
  13. returnage;
  14. classTestOne{
  15. staticvoidmain(String[]args){
  16. UserInfoinfo=newUserInfo();
  17. info.setName("zhangsan");
  18. info.setAge(24);
  19. //将对象转换为JSON字符串
  20. Stringstr_json=JSON.toJSONString(info);
  21. System.out.println("JSON="+str_json);
  22. }

二.复杂的数据类型

copy

    voidtest2(){
  1. HashMap<String,Object>map=newHashMap<String,Object>();
  2. map.put("username","zhangsan");
  3. map.put("age",24);
  4. map.put("sex","男");
  5. //map集合
  6. temp.put("name","xiaohong");
  7. temp.put("age","23");
  8. map.put("girlInfo",temp);
  9. @H_968_301@//list集合
  10. List<String>list=newArrayList<String>();
  11. list.add("爬山");
  12. list.add("骑车");
  13. list.add("旅游");
  14. map.put("hobby",list);
  15. /*JSON序列化,默认序列化出的JSON字符串中键值对是使用双引号,如果需要单引号的JSON字符串,[eg:StringjsonString=JSON.toJSONString(map,SerializerFeature.UseSingleQuotes);]
  16. *fastjson序列化时可以选择的SerializerFeature有十几个属性,你可以按照自己的需要去选择使用。
  17. @H_968_301@*/
  18. StringjsonString=JSON.toJSONString(map);
  19. System.out.println("JSON="+jsonString);
  20. }

三.反序列化

copy

    voidtest3(){
  1. Stringjson="{\"name\":\"chenggang\",\"age\":24}";
  2. //反序列化
  3. UserInfouserInfo=JSON.parSEObject(json,UserInfo.class);
  4. System.out.println("name:"+userInfo.getName()+",age:"+userInfo.getAge());
  5. @H_968_301@/**泛型的反序列化*/
  6. voidtest4(){
  7. Stringjson="{\"user\":{\"name\":\"zhangsan\",\"age\":25}}";
  8. Map<String,UserInfoBean>map=JSON.parSEObject(json,newTypeReference<Map<String,UserInfoBean>>(){});
  9. System.out.println(map.get("user"));
  10. }

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

四.日期格式化

copy

    voidtest5(){
  1. Datedate=newDate();
  2. //输出毫秒值
  3. System.out.println(JSON.toJSONString(date));
  4. //默认格式为yyyy-MM-ddHH:mm:ss
  5. System.out.println(JSON.toJSONString(date,SerializerFeature.WriteDateUseDateFormat));
  6. //根据自定义格式输出日期
  7. System.out.println(JSON.toJSONStringWithDateFormat(date,"yyyy-MM-dd",SerializerFeature.WriteDateUseDateFormat));

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

    猜你在找的Json相关文章