fastjson我也是最近才了解这个玩意的,需求就是返回json字符串给我么你的客户端,比较多,自己写很麻烦。以前没有见过,还傻不拉几的使用,感觉使用了之后,帅呆了,非常的棒。对于我们序列话一个Javabean之类的数据,真的不错哦,反应挺舒服的。
@H_404_4@我们首先看我的一个使用吧,这个看起来更舒服一点
第一个代码是我们主要的封装,里面的一个List又封装了一个Javabeanpackage com.hdu.bean; import java.io.Serializable; import java.util.List; public class RespondMessage<T> implements Serializable{ public RespondMessage() { super(); // TODO Auto-generated constructor stub } private int status; private String message; private List<T> result; public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public List<T> getResult() { return result; } public void setResult(List<T> result) { this.result = result; } }
List中的JavaBean的格式
package com.hdu.bean; import java.io.Serializable; /** * * @author JetWang * */ public class UserInfoBase implements Serializable{ public UserInfoBase() { super(); // TODO Auto-generated constructor stub } private String username; private String tell; private String email; private String remark; private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getTell() { return tell; } public void setTell(String tell) { this.tell = tell; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } }
这个是我们够造的数据,让后向里面添加数据就行了,数据添加没有贴出来。
这个下面的是为了让为空的属性也输出来 RespondMessage<UserInfoBase> respondMessage = new RespondMessage<UserInfoBase>(); jsonResult = JSON.toJSONString(respondMessage,SerializerFeature.PrettyFormat,SerializerFeature.WriteMapNullValue,SerializerFeature.WriteDateUseDateFormat); log.info(jsonResult);
我们来看哈效果,你看就是一句话的事情,把我们的东西全部输出来
看起来是不是特别的帅呢?而切他还可以还原一个javabean呢!真的不错,怪说不得,我们的阿里爸爸,把他说成fast….说了这么多,还没有切入到我们的正题上面去哦,对哦,今天我没把jar包放在lib目录下,害的我找了半天的错误!放在用户目录下面并没有加载进去哦!诶诶
fastjson的简介:
Fastjson是一个Java语言编写的高性能功能完善的JSON库。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。Fastjson完全支持http://www.jb51.cc/tag/http://json.org的标准,也是官方网站收录的参考实现之一。支持各种JDK类型。包括基本类型、JavaBean、Collection、Map、Enum、泛型等。支持JDK 5、JDK 6、Android、阿里云手机等环境。
fastJson能够生成和解析的数据类型有哪些呢?
- JavaBean
- List< JavaBean>
- List< Map< String,Object>
List< String>
分别对应我们的生成json字符串和解析字符串生成json字符串
(JavaBean,List< JavaBean>,List< String>,List< Map< String,Object>)解析json字符串为四种类型
1。JavaBeanPerson person = JSON.parSEObject(jsonString,Person.class);
2。 List< JavaBean >
List<Person> listPerson =JSON.parseArray(jsonString,Person.class);
3。 List< String >
List<String> listString = JSON.parseArray(jsonString,String.class);
4。List< Map< String,Object>>
List<Map<String,Object>> listMap = JSON.parSEObject(jsonString,new TypeReference<List<Map<String,Object>>>(){});
下面来个简单的Jsonobject的解析
package com.hdu.Json; import java.util.Map; import com.alibaba.fastjson.JSONObject; public class JsonDemo { public static void main(String[] args) { String testString = "{\"体育\":\"姚明\",\"数学\":\"付老师\",\"英语\":\"一般般\",\"生活\":\"平常话\"}"; for (int i = 0; i < 10; i++) { JSONObject jsonObject = JSONObject.parSEObject(testString); for (Map.Entry<String,Object> entry : jsonObject.entrySet()) { System.out.print(entry.getKey() + "-" + entry.getValue() + "\t"); } System.out.println(); } } } 生活-平常话 体育-姚明 数学-付老师 英语-一般般 生活-平常话 体育-姚明 数学-付老师 英语-一般般 生活-平常话 体育-姚明 数学-付老师 英语-一般般 生活-平常话 体育-姚明 数学-付老师 英语-一般般 生活-平常话 体育-姚明 数学-付老师 英语-一般般 生活-平常话 体育-姚明 数学-付老师 英语-一般般 生活-平常话 体育-姚明 数学-付老师 英语-一般般 生活-平常话 体育-姚明 数学-付老师 英语-一般般 生活-平常话 体育-姚明 数学-付老师 英语-一般般 生活-平常话 体育-姚明 数学-付老师 英语-一般般
这个只是简单的做个介绍,我试试,看别人的博客说顺序不一致,好像不是这回事。挺好的
函数 意义 public static final Object parse(String text) 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parSEObject(String text) 把JSON文本parse成JSONObject public static final < T> T parSEObject(String text,Class< T > clazz); 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); 把JSON文本parse成JSONArray public static final < T> List< T> parseArray(String text,Class< T> clazz); 把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object) 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object,boolean prettyFormat); 将JavaBean序列化为带格式的JSON文本 public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。