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
原创粉丝点击