All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yuweix.kuafu.core.json.Fastjson Maven / Gradle / Ivy

There is a newer version: 2.0.0
Show newest version
package com.yuweix.kuafu.core.json;


import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONReader;
import com.alibaba.fastjson2.JSONWriter;
import com.alibaba.fastjson2.TypeReference;
import com.alibaba.fastjson2.filter.Filter;

import java.util.LinkedList;
import java.util.List;


/**
 * @author yuwei
 */
public class Fastjson implements Json {
	private static final List autoTypes = new LinkedList<>();
	private static Filter autoTypeFilter;

	@Override
	public void addAccept(String name) {
		autoTypes.add(name);
		autoTypeFilter = JSONReader.autoTypeFilter(autoTypes.toArray(new String[0]));
	}

	@Override
	public  String serialize(T t) {
		if (t == null) {
			return null;
		}
		return JSON.toJSONString(t, JSONWriter.Feature.WriteClassName);
	}

	@Override
	public T deserialize(String str) {
		if (str == null) {
			return null;
		}
		if (autoTypeFilter == null) {
			return JSON.parseObject(str, new TypeReference() {});
		} else {
			return JSON.parseObject(str, new TypeReference() {}, autoTypeFilter);
		}
	}

	@Override
	public String toJSONString(Object object) {
		return JSON.toJSONString(object);
	}

	@Override
	public Object parse(String text) {
		return JSON.parse(text);
	}

	@Override
	public T parseObject(String text, TypeReference type) {
		return JSON.parseObject(text, type);
	}

	@Override
	public T parseObject(String text, Class clz) {
		return JSON.parseObject(text, clz);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy