FastJson简单使用
??
在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用JSON的方式进行数据传输,简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON字符串,出错率就非常大了。并且工作效率也特别低。 经过测试,个人觉得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的方法的说明,进行选择。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |