赞
踩
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.68</version>
- </dependency>
对象 | 静态方法(常用) | 描述 |
JSON | parse(String text) | 功能:json字符串转Object对象 参数: 要转换文本为 string 或 byte[] 可在参数中配置下列对象 ParserConfig 解析器配置对象(详见3.6) Feature 设置特征(详见3.2) |
parseObject(String text) | 功能:json字符串转对象 参数: 带class或Type或TypeReference可返回javaBean对象, 其他返回为 JSONObject 对象 要转换文本为 string 或 byte[] 或 InputStream 可在参数中配置下列对象 Feature 设置特征(详见3.2) ParserConfig 解析器配置对象(详见3.6) ParseProcess 解析过程对象 (详见3.7) | |
parseArray(String text) | 功能:json字符串转JSONArray对象 带class或Type[]可返回j对象集合, | |
toJSON(Object javaObject) | 功能:java对象转换json对象 可在参数中配置下列对象 SerializeConfig 配置信息(详见3.5) | |
toJSONString(Object object) | 功能:对象转换json字符串 prettyFormat 参数为 true,可配置json字符串格式化 可在参数中配置下列对象 SerializerFeature 设置特征(详见3.3) SerializeConfig 配置信息(详见3.5) SerializeFilter 配置过滤器(详见3.4) | |
toJSONBytes(Object object) | 功能:对象转换Bytes数组 可在参数中配置下列对象 SerializerFeature 设置特征(详见3.3) SerializeConfig 配置信息(详见3.5) SerializeFilter 配置过滤器(详见3.4) | |
toJavaObject(JSON json, Class<T> clazz) | 功能:java对象转换java对象 | |
writeJSONString(OutputStream o, Object obj) | 功能:对象转Json到输出流中 参数流对象可为 Writer 或 OutputStream 可在参数中配置下列对象 SerializerFeature 设置特征(详见3.3) SerializeConfig 配置信息(详见3.5) SerializeFilter 配置过滤器(详见3.4) | |
JSONArray | JSON子类,侧重处理JSONArray对象 | |
JSONObject | JSON子类,侧重处理JSONObject对象 | |
JSONPath | eval(Object rootObject, String path) | 求值,获取rootObject对象path节点的值 |
size(Object rootObject, String path) | 求长度,获取rootObject对象path节点的数组或集合元素数量 | |
contains(Object rootObject, String path) | 是否包含,获取rootObject对象path节点是否存在 | |
containsValue(Object o, String path, Object value) | 是否包含,获取rootObject对象path节点的值是否为v | |
set(Object rootObject, String path, Object value) | 修改rootObject对象path节点的值 | |
arrayAdd(Object o, String path, Object... values) | 往rootObject对象path节点的数组或集合添加元素 | |
remove(Object root, String path) | 移除rootObject对象path节点值 | |
compile(String path) | 获取rootObject对象path节点的 JSONPath 对象 | |
read(String json, String path) | 获取json字符串path节点的 JSONObject或JSONArray 对象 | |
extract(String json, String path) | 获取json字符串path节点的 JSONObject或JSONArray 对象 | |
paths(Object javaObject) | 获取rootObject对象各path路径,返回map | |
reserveToArray(Object object, String... paths) | 获取rootObject对象各path节点数据为JSONArray | |
reserveToObject(Object object, String... paths) | 获取rootObject对象各path节点数据为JSONObject | |
keySet(Object rootObject, String path) | 获取rootObject对象path节点下的各节点 |
@JSONField 字段上
name 转换为json的key值
serialize 是否序列化 默认true可序列化
deserialize 是否反序列化 默认true可反序列化
ordinal 排序
format 日期格式
serializeUsing 性定制序列化
@JSONType 类上
ignores 配置不序列化的列,数组
includes 配置序列化的列,数组
orders 排序,配置的在前面,数组
serialzeFeatures配置多个SerializerFeature
alternateNames 配置反序列化多个字段,数组
jsonDirect 把字段为 json数据格式 进行转换
AutoCloseSource, 自动关流,默认自动关闭
AllowComment, 是否允许解析使用注释(包括'/'+'*' 和'//' 变量),默认不允许
AllowUnQuotedFieldNames, 是否将允许使用非双引号属性名字,默认不允许
AllowSingleQuotes, 是否允许单引号来包住属性名称和字符串值,默认不允许
InternFieldNames, 是否可以被String#intern 规范化表示
AllowISO8601DateFormat, 字符串符合ISO8601格式的日期时,会直接转换成日期类
AllowArbitraryCommas, 允许多重逗号,如果设为true,则遇到多个逗号会直接跳过;
UseBigDecimal, 这个设置为true则用BigDecimal类来装载数字,否则用的是double;
IgnoreNotMatch, 忽略不匹配
SortFeidFastMatch, 按照fieldName排序读取
DisableASM, 禁用ASM
DisableCircularReferenceDetect, 禁用循环引用检测
InitStringFieldAsEmpty, 对于没有值得字符串属性设置为空串
SupportArrayToBean, 支持数组to对象
OrderedField, 属性保持原来的顺序
DisableSpecialKeyDetect, 禁用特殊字符检查
UseObjectArray, 使用对象数组
SupportNonPublicField,
IgnoreAutoType,
DisableFieldSmartMatch,
SupportAutoType,
NonStringKeyAsString,
CustomMapDeserializer;
PrettyFormat 格式化输出
UseSingleQuotes 使用单引号
WriteMapNullValue 输出null值
UseISO8601DateFormat Date使用ISO8601格式输出
WriteNullListAsEmpty List字段如果为null,输出为[]
WriteNullStringAsEmpty 字符类型字段如果为null,输出为”“
WriteNullNumberAsZero 数值字段如果为null,输出为0
WriteNullBooleanAsFalse Boolean字段如果为null,输出为false
BrowserCompatible 对中文进行转译
WriteDateUseDateFormat 全局修改日期格式
BeanToArray 将对象转为array输出
DisableCircularReferenceDetect 消除对同一对象循环引用的问题
QuoteFieldNames, 输出key时是否使用双引号,默认为true
SkipTransientField
SortField
WriteClassName 序列化时写入类型信息,默认为false。反序列化是需用到
WriteSlashAsSpecial 对斜杠'/'进行转义
NotWriteRootClassName
DisableCheckSpecialChar
IgnoreNonFieldGetter
WriteEnumUsingName
WriteNonStringKeyAsString
BrowserSecure
WriteTabAsSpecial
NotWriteDefaultValue
WriteEnumUsingToString
- PropertyPreFilter 根据PropertyName判断是否序列化
- PropertyFilter 根据PropertyName和PropertyValue来判断是否序列化
- NameFilter 修改Key,如果需要修改Key,process返回值则可
- ValueFilter 修改Value
- BeforeFilter 序列化时在最前添加内容
- AfterFilter 序列化时在最后添加内容
- PropertyFilter filter = new PropertyFilter() {
- public boolean apply(Object source, String name, Object value) {
- //返回true进行序列化 source(原数据) name(key) value(value)
- return false;
- }
- };
-
- PropertyPreFilter filter = new PropertyPreFilter () {
- @Override
- public boolean apply(JSONSerializer jsonSerializer, Object o, String s) {
- //返回true进行序列化 0(原数据) s(key)
- return false;
- }
- };
-
- NameFilter filter = new NameFilter () {
- @Override
- public String process(Object o, String s, Object o1) {
- //返回key值 o(原数据) s(key) o1(value)
- return s;
- }
- };
- ValueFilter filter = new ValueFilter () {
- @Override
- public Object process(Object o, String s, Object o1) {
- //返回value o(原数据) s(key) o1(value)
- return o1;
- }
- };
- BeforeFilter filter = new BeforeFilter () {
- @Override
- public void writeBefore(Object o) {
- writeKeyValue("key","value");//在json前添加数据
- }
- };
- AfterFilter filter = new AfterFilter() {
- @Override
- public void writeAfter(Object o) {
- writeKeyValue("key","value");//在json后添加数据
- }
- };
- SerializeConfig config = SerializeConfig.getGlobalInstance();
- SerializeConfig config = new SerializeConfig();
- config.propertyNamingStrategy = PropertyNamingStrategy.SnakeCase;
暂无
- ExtraProcessor processor = new ExtraProcessor() {
- public void processExtra(Object object, String key, Object value) {
-
- }
- };
- ExtraTypeProvider provider=new ExtraTypeProvider() {
- @Override
- public Type getExtraType(Object o, String s) {
- System.out.println(1111);
- return null;
- }
- };
配置项 | 配置内容 | 示例 |
PropertyNamingStrategy.SnakeCase | 字段命名策略 | aaBb |
PropertyNamingStrategy.PascalCase | AaBb | |
PropertyNamingStrategy.SnakeCase | aa_bb | |
PropertyNamingStrategy.KebabCase | aa-bb |
自定义接口,在注解中配置使用
- package com.example.mydemo.fastjson;
- import com.alibaba.fastjson.serializer.JSONSerializer;
- import com.alibaba.fastjson.serializer.ObjectSerializer;
-
- import java.io.IOException;
- import java.lang.reflect.Type;
- //序列化
- public class MySerializer implements ObjectSerializer {
- @Override
- public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType,
- int features) throws IOException {
- //object字段值 fieldName字段名 fieldType字段类型
- serializer.write(object);
- }
- }
- package com.example.mydemo.fastjson;
- import com.alibaba.fastjson.parser.DefaultJSONParser;
- import com.alibaba.fastjson.parser.deserializer.ObjectDeserializer;
- import java.lang.reflect.Type;
- //反序列化
- public class MyDeserializer implements ObjectDeserializer {
- @Override
- public <T> T deserialze(DefaultJSONParser defaultJSONParser, Type type, Object o) {
- return null;
- }
- @Override
- public int getFastMatchToken() {
- return 0;
- }
- }
- //JSON方法
- //json字符串转对象,参数还可配置ParserConfig,,Feature等,转换文本可为byte[]
- Object parse(String text)
- //json字符串转 JSONObject 对象,参数可配置Feature
- JSONObject parseObject(String text)
- //json字符串转 实体 对象;text 可为byte[],clazz可配为Type,还可配置Feature,ParserConfig等
- T parseObject(String text, Class<T> clazz)
- //输入流转换对象,还可配置Charset
- T parseObject(InputStream is, Type type, Feature... features)
- //json字符串转 JSONArray 对象
- JSONArray parseArray(String text)
- //json字符串转 list 对象,clazz可配置为Type[]
- List<T> parseArray(String text, Class<T> clazz)
- //list,实体类转换为JSONArray ,JSONObject ,可配置ParserConfig
- Object toJSON(Object javaObject)
- //JSONObject 转 实体类
- T toJavaObject(JSON json, Class<T> clazz)
- //对象转byte[] ,还可配置SerializeFilter,SerializeConfig等
- byte[] toJSONBytes(Object object, SerializerFeature... features)
- //对象转json字符串,可配置SerializeConfig,SerializerFeature,SerializeFilter等,还有其他配置(如是否格式化)
- String toJSONString(Object object)
- //json写出到文本,os可为Writer;还可配置Charset,defaultFeatures
- int writeJSONString(OutputStream os, Object object, SerializerFeature... features)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。