Fastjson 学习笔记
来源:互联网 发布:手机知乎如何退出 编辑:程序博客网 时间:2024/06/08 10:13
Fastjson
常用方法列表
public static Object parse(String text);public static Object parse(String text, int features);public static Object parse(String text, Feature... features);public static JSONObject parseObject(String text, Feature... features);public static JSONObject parseObject(String text);public static <T> T parseObject(String text, TypeReference<T> type, Feature... features);public static <T> T parseObject(String text, Class<T> clazz, Feature... features);public static <T> T parseObject(String input, Type clazz, Feature... features);public static <T> T parseObject(String text, Class<T> clazz);public static JSONArray parseArray(String text);public static <T> List<T> parseArray(String text, Class<T> clazz);public static List<Object> parseArray(String text, Type[] types);public static String toJSONString(Object object);public static String toJSONString(Object object, SerializerFeature... features);public static String toJSONStringWithDateFormat(Object object, String dateFormat, SerializerFeature... features);public static String toJSONString(Object object, boolean prettyFormat);public static Object toJSON(Object javaObject);public static <T> T toJavaObject(JSON json, Class<T> clazz);
示例代码(java 1.8)
main
import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.TypeReference;import java.util.List;public class FastJsonDemo { public static void main(String[] args){ singleBean(); ArrayBean(); losePropertitesBean(); addPropertitesBean(); complexBean(); genericType(); } private static void genericType() { System.out.println("---泛型bean演示---"); String json = "{\"t\":\"t\",\"u\":{\"id\":1,\"name\":\"name\"},\"value\":\"value\"}"; System.out.println(json); GenericTypeJsonBean<String, JsonBean> parse = JSON .parseObject(json, new TypeReference<GenericTypeJsonBean<String, JsonBean>>(){}); String t = parse.getT(); System.out.println(t.getClass().getName()); JsonBean u = parse.getU(); System.out.println(u.getClass().getName()); System.out.println(parse); } private static void complexBean() { System.out.println("---复杂bean演示---"); String json = "{\"value\":\"value\",\"jsonBean\":{\"id\":1,\"name\":\"name\"}}"; System.out.println(json); ComplexJsonBean parse = JSON.parseObject(json, ComplexJsonBean.class); System.out.println(parse); } /** * 允许缺少字段 * 输出 忽略为空字段 */ private static void losePropertitesBean() { System.out.println("---缺失属性演示---"); String json = "{\"id\":1}"; System.out.println("json-->"+json); JSONObject jsonObject = JSON.parseObject(json); System.out.println("jsonObject-->"+jsonObject); JsonBean jsonBean = JSON.parseObject(json, JsonBean.class); System.out.println("jsonBean-->"+jsonBean); System.out.println("fastjson format-->"+JSON.toJSONString(jsonBean, true)); } /** * 允许未知字段 * 输出 忽略为空字段 */ private static void addPropertitesBean() { System.out.println("---多出其他属性演示---"); String json = "{\"id\":1, \"other\":\"othervalue\"}"; System.out.println("json-->"+json); JSONObject jsonObject = JSON.parseObject(json); System.out.println("jsonObject-->"+jsonObject); JsonBean jsonBean = JSON.parseObject(json, JsonBean.class); System.out.println("jsonBean-->"+jsonBean); System.out.println("fastjson format-->"+JSON.toJSONString(jsonBean, true)); } private static void ArrayBean() { System.out.println("---链表演示---"); String json = "[{\"id\":1,\"name\":\"cs\"},{\"id\":2,\"name\":\"cs2\"}]"; System.out.println("json-->"+json); List<JsonBean> jsonBeans = JSON.parseArray(json, JsonBean.class); System.out.println("jsonBeans-->"+jsonBeans); System.out.println("fastjson format-->"+JSON.toJSONString(jsonBeans, true)); } private static void singleBean() { System.out.println("---简单bean演示---"); String json = "{\"id\":1,\"name\":\"cs\"}"; System.out.println("json-->"+json); JSONObject jsonObject = JSON.parseObject(json); System.out.println("jsonObject-->"+jsonObject); JsonBean jsonBean = JSON.parseObject(json, JsonBean.class); System.out.println("jsonBean-->"+jsonBean); System.out.println("fastjson format-->"+JSON.toJSONString(jsonBean, true)); }}
ComplexJsonBean
import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.ToString;@Data@NoArgsConstructor@AllArgsConstructor@ToStringpublic class ComplexJsonBean { private String value; private JsonBean jsonBean;}
GenericTypeJsonBean
import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@AllArgsConstructor@NoArgsConstructorpublic class GenericTypeJsonBean<T, U> { private T t; private U u; private String value;}
JsonBean
import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.ToString;@Data@AllArgsConstructor@NoArgsConstructor@ToString(of = {"id", "name"})public class JsonBean { private int id; private String name;}
pom
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.8</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
输出结果
---简单bean演示---json-->{"id":1,"name":"cs"}jsonObject-->{"name":"cs","id":1}jsonBean-->JsonBean(id=1, name=cs)fastjson format-->{ "id":1, "name":"cs"}---链表演示---json-->[{"id":1,"name":"cs"},{"id":2,"name":"cs2"}]jsonBeans-->[JsonBean(id=1, name=cs), JsonBean(id=2, name=cs2)]fastjson format-->[ { "id":1, "name":"cs" }, { "id":2, "name":"cs2" }]---缺失属性演示---json-->{"id":1}jsonObject-->{"id":1}jsonBean-->JsonBean(id=1, name=null)fastjson format-->{ "id":1}---多出其他属性演示---json-->{"id":1, "other":"othervalue"}jsonObject-->{"other":"othervalue","id":1}jsonBean-->JsonBean(id=1, name=null)fastjson format-->{ "id":1}---复杂bean演示---{"value":"value","jsonBean":{"id":1,"name":"name"}}ComplexJsonBean(value=value, jsonBean=JsonBean(id=1, name=name))---泛型bean演示---{"t":"t","u":{"id":1,"name":"name"},"value":"value"}java.lang.Stringcom.cs.fastjson.JsonBeanGenericTypeJsonBean(t=t, u=JsonBean(id=1, name=name), value=value)
0 0
- FastJson学习笔记
- fastjson学习笔记
- fastjson 学习笔记
- Fastjson 学习笔记
- FastJson学习笔记
- android学习笔记19:FastJson解析json
- JSON解析学习笔记(json、gson、fastjson)
- FastJson笔记
- fastjson学习
- fastjson学习
- 开源工程学习笔记之Fastjson(Part 0)
- 开源工程学习笔记之Fastjson(Part 1)
- Springboot学习笔记(一)FastJson解析JSON数据
- 【JavaEE学习笔记】JSON解析_原生JSON,GSON,FastJSON
- fastJson 笔记-简单应用
- FastJson 使用笔记
- fastjson 学习总结
- Java之fastjson学习
- ng-init的妙用
- 邮件群发及自动统计退信、动态调整发送策略
- Faster RCNN解析
- Leetcode 172 Factorial Trailing Zeroes
- 正则表达式实例
- Fastjson 学习笔记
- CMD 命令
- 一个简单的文件系统过滤驱动框架
- 特征选择与特征提取
- C++ 常用WinDef 宏函数LOWORD和HIWORD
- 自定义DrawerLayout滑动样式
- Http上传下载输入输出流总结
- Xutils2.6不能在Studio里使用
- HTML5表单自动验证