Fastjson 学习笔记

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
@ToString
public class ComplexJsonBean {
    private String value;
    private JsonBean jsonBean;
}

GenericTypeJsonBean

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public 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.String
com.cs.fastjson.JsonBean
GenericTypeJsonBean(t=t, u=JsonBean(id=1, name=name), value=value)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值