作者:梦回大唐2502907957 | 来源:互联网 | 2023-09-23 09:42
fastjson我也是最近才了解这个玩意的,需求就是返回json字符串给我么你的客户端,比较多,自己写很麻烦。以前没有见过,还傻不拉几的使用,感觉使用了之后,帅呆了,非常的棒。对于我们序列话一个Javabean之类的数据,真的不错哦,反应挺舒服的。
我们首先看我的一个使用吧,这个看起来更舒服一点
第一个代码是我们主要的封装,里面的一个List又封装了一个Javabean
package com.hdu.bean;import java.io.Serializable;
import java.util.List;public class RespondMessage implements Serializable{public RespondMessage() {super();}private int status;private String message;private List 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 getResult() {return result;}public void setResult(List result) {this.result = result;}}
List中的JavaBean的格式
package com.hdu.bean;import java.io.Serializable;
/*** * @author JetWang**/public class UserInfoBase implements Serializable{public UserInfoBase() {super();}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 respondMessage = new RespondMessage()
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://json.org的标准,也是官方网站收录的参考实现之一。支持各种JDK类型。包括基本类型、JavaBean、Collection、Map、Enum、泛型等。支持JDK 5、JDK 6、Android、阿里云手机等环境。
fastJson能够生成和解析的数据类型有哪些呢?
- JavaBean
- List
- List
List
分别对应我们的生成json字符串和解析字符串
生成json字符串
(JavaBean,List,List,List
解析json字符串为四种类型
1。JavaBean
Person person = JSON.parseObject(jsonString, Person.class)
2。 List
List listPerson =JSON.parseArray(jsonString, Person.class)
3。 List
List<String> listString &#61; JSON.parseArray(jsonString, String.class);
4。List
List<Map<String, Object>> listMap &#61; JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});
下面来个简单的Jsonobject的解析
package com.hdu.Jsonimport java.util.Mapimport com.alibaba.fastjson.JSONObjectpublic class JsonDemo {public static void main(String[] args) {String testString &#61; "{\"体育\":\"姚明\",\"数学\":\"付老师\",\"英语\":\"一般般\",\"生活\":\"平常话\"}"for (int i &#61; 0JSONObject jsonObject &#61; JSONObject.parseObject(testString)for (Map.Entry entry : jsonObject.entrySet()) {System.out.print(entry.getKey() &#43; "-" &#43; entry.getValue() &#43; "\t")}System.out.println()}}}生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
生活-平常话 体育-姚明 数学-付老师 英语-一般般
这个只是简单的做个介绍&#xff0c;我试试&#xff0c;看别人的博客说顺序不一致&#xff0c;好像不是这回事。挺好的
函数 | 意义 |
---|
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 parseObject(String text, Class clazz); | 把JSON文本parse为JavaBean |
public static final JSONArray parseArray(String text); | 把JSON文本parse成JSONArray |
public static final List parseArray(String text, Class 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。 |