public class JFinalJsonKit extends Object
| 限定符和类型 | 类和说明 |
|---|---|
static class |
JFinalJsonKit.JsonResult
JsonResult 用于存放 json 生成结果,结合 ThreadLocal 进行资源重用
|
static interface |
JFinalJsonKit.ToJson<T> |
| 限定符和类型 | 字段和说明 |
|---|---|
protected static SyncWriteMap<Class<?>,JFinalJsonKit.ToJson<?>> |
cache |
protected static int |
maxBufferSize |
static JFinalJsonKit |
me |
protected static Function<String,String> |
modelAndRecordFieldNameConverter |
protected static boolean |
skipNullValueField |
protected static Function<Object,JFinalJsonKit.ToJson<?>> |
toJsonFactory |
protected static boolean |
treatModelAsBean |
| 构造器和说明 |
|---|
JFinalJsonKit() |
| 限定符和类型 | 方法和说明 |
|---|---|
static void |
addToJson(Class<?> type,
JFinalJsonKit.ToJson<?> toJson)
添加 ToJson 转换接口实现类,自由定制任意类型数据的转换规则
例子:
ToJson
|
static com.jfinal.json.JFinalJsonKit.BeanToJson |
buildBeanToJson(Object bean)
存在 getter/is 方法返回 BeanToJson,否则返回 null
|
static boolean |
checkDepth(int depth,
JFinalJsonKit.JsonResult ret) |
protected JFinalJsonKit.ToJson<?> |
createToJson(Object value) |
static void |
escape(String s,
StringBuilder sb)
Escape quotes, \, /, \r, \n, \b, \f, \t and other control characters (U+0000 through U+001F).
|
JFinalJsonKit.ToJson<?> |
getToJson(Object object) |
static void |
iteratorToJson(Iterator it,
int depth,
JFinalJsonKit.JsonResult ret) |
static void |
mapToJson(Map<?,?> map,
int depth,
JFinalJsonKit.JsonResult ret) |
static void |
modelAndRecordToJson(Map<String,Object> map,
int depth,
JFinalJsonKit.JsonResult ret) |
static void |
setMaxBufferSize(int maxBufferSize) |
static void |
setModelAndRecordFieldNameConverter(Function<String,String> converter)
配置 Model、Record 字段名的转换函数
例子:
JFinalJson.setModelAndRecordFieldNameConverter(fieldName -> {
return StrKit.toCamelCase(fieldName, true);
});
以上例子中的方法 StrKit.toCamelCase(...)
|
static void |
setModelAndRecordFieldNameToCamelCase()
配置将 Model、Record 字段名转换为驼峰格式
先将字段名无条件转换成小写字母,然后再转成驼峰格式,适用于 oracle 这类字段名是大写字母的数据库
如果是 mysql 数据库,建议使用: setModelAndRecordFieldNameToCamelCase(false);
|
static void |
setModelAndRecordFieldNameToCamelCase(boolean toLowerCaseAnyway)
配置将 Model、Record 字段名转换为驼峰格式
toLowerCaseAnyway 参数的含义:
1:true 值无条件将字段先转换成小写字母。
|
static void |
setSkipNullValueField(boolean skipNullValueField) |
static void |
setToJsonFactory(Function<Object,JFinalJsonKit.ToJson<?>> toJsonFactory) |
static void |
setTreatModelAsBean(boolean treatModelAsBean)
将 Model 当成 Bean 只对 getter 方法进行转换
默认值为 false,将使用 Model 内的 Map attrs 属性进行转换,不对 getter 方法进行转换
优点是可以转换 sql 关联查询产生的动态字段,还可以转换 Model.put(...)
|
public static final JFinalJsonKit me
protected static SyncWriteMap<Class<?>,JFinalJsonKit.ToJson<?>> cache
protected static int maxBufferSize
protected static boolean treatModelAsBean
protected static boolean skipNullValueField
protected static Function<String,String> modelAndRecordFieldNameConverter
protected static Function<Object,JFinalJsonKit.ToJson<?>> toJsonFactory
public JFinalJsonKit.ToJson<?> getToJson(Object object)
public static void addToJson(Class<?> type, JFinalJsonKit.ToJson<?> toJson)
例子:
ToJson toJson = (value, depth, ret) -> {
ret.addLong(value.getTime());
};
JFinalJson.addToJson(Timestamp.class, toJson);
以上代码为 Timestamp 类型的 json 转换定制了转换规则
将其转换成了 long 型数据
protected JFinalJsonKit.ToJson<?> createToJson(Object value)
public static boolean checkDepth(int depth,
JFinalJsonKit.JsonResult ret)
public static void modelAndRecordToJson(Map<String,Object> map, int depth, JFinalJsonKit.JsonResult ret)
public static void mapToJson(Map<?,?> map, int depth, JFinalJsonKit.JsonResult ret)
public static void iteratorToJson(Iterator it, int depth, JFinalJsonKit.JsonResult ret)
public static com.jfinal.json.JFinalJsonKit.BeanToJson buildBeanToJson(Object bean)
public static void escape(String s, StringBuilder sb)
public static void setMaxBufferSize(int maxBufferSize)
public static void setTreatModelAsBean(boolean treatModelAsBean)
public static void setModelAndRecordFieldNameConverter(Function<String,String> converter)
例子:
JFinalJson.setModelAndRecordFieldNameConverter(fieldName -> {
return StrKit.toCamelCase(fieldName, true);
});
以上例子中的方法 StrKit.toCamelCase(...) 的第二个参数可以控制大小写转化的细节
可以查看其方法上方注释中的说明了解详情
public static void setModelAndRecordFieldNameToCamelCase(boolean toLowerCaseAnyway)
toLowerCaseAnyway 参数的含义: 1:true 值无条件将字段先转换成小写字母。适用于 oracle 这类字段名是大写字母的数据库 2:false 值只在出现下划线时将字段转换成小写字母。适用于 mysql 这类字段名是小写字母的数据库
public static void setModelAndRecordFieldNameToCamelCase()
public static void setToJsonFactory(Function<Object,JFinalJsonKit.ToJson<?>> toJsonFactory)
public static void setSkipNullValueField(boolean skipNullValueField)
Copyright © 2022. All rights reserved.