0
点赞
收藏
分享

微信扫一扫

码农小汪之Alibaba-fastjson的基本使用

程序员漫画编程 2022-02-23 阅读 64



fastjson我也是最近才了解这个玩意的,需求就是返回json字符串给我么你的客户端,比较多,自己写很麻烦。以前没有见过,还傻不拉几的使用,感觉使用了之后,帅呆了,非常的棒。对于我们序列话一个Javabean之类的数据,真的不错哦,反应挺舒服的。


我们首先看我的一个使用吧,这个看起来更舒服一点

第一个代码是我们主要的封装,里面的一个List又封装了一个Javabean

package 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);

我们来看哈效果,你看就是一句话的事情,把我们的东西全部输出来

码农小汪之Alibaba-fastjson的基本使用_数据

看起来是不是特别的帅呢?而切他还可以还原一个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< JavaBean>
  • List< Map< String,Object>
  • List< String>
    分别对应我们的生成json字符串和解析字符串

  • 生成json字符串
    (JavaBean,List< JavaBean>,List< String>,List< Map< String,Object>)

  • 解析json字符串为四种类型
    1。JavaBean


Person 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。


举报

相关推荐

0 条评论