public class TioJsonKit extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
protected static SyncWriteMap<Class<?>,TioToJson<?>> |
cache |
protected static boolean |
longToString |
protected static int |
maxBufferSize |
static TioJsonKit |
me |
protected static java.util.function.Function<String,String> |
modelAndRecordFieldNameConverter |
protected static boolean |
skipNullValueField |
protected static java.util.function.Function<Object,TioToJson<?>> |
toJsonFactory |
protected static boolean |
treatModelAsBean |
| 构造器和说明 |
|---|
TioJsonKit() |
| 限定符和类型 | 方法和说明 |
|---|---|
static void |
addToJson(Class<?> type,
TioToJson<?> toJson)
添加 ToJson 转换接口实现类,自由定制任意类型数据的转换规则
例子:
ToJson
|
static com.litongjava.tio.utils.json.TioJsonKit.BeanToJson |
buildBeanToJson(Object bean)
存在 getter/is 方法返回 BeanToJson,否则返回 null
|
static boolean |
checkDepth(int depth,
JsonResult ret) |
protected TioToJson<?> |
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).
|
static boolean |
getLongToString() |
TioToJson<?> |
getToJson(Object object) |
static void |
iteratorToJson(Iterator it,
int depth,
JsonResult ret) |
static void |
mapToJson(Map<?,?> map,
int depth,
JsonResult ret) |
static void |
modelAndRecordToJson(Map<String,Object> map,
int depth,
JsonResult ret) |
static void |
setLongToString(boolean b) |
static void |
setMaxBufferSize(int maxBufferSize) |
static void |
setModelAndRecordFieldNameConverter(java.util.function.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(java.util.function.Function<Object,TioToJson<?>> toJsonFactory) |
static void |
setTreatModelAsBean(boolean treatModelAsBean)
将 Model 当成 Bean 只对 getter 方法进行转换
默认值为 false,将使用 Model 内的 Map attrs 属性进行转换,不对 getter 方法进行转换
优点是可以转换 sql 关联查询产生的动态字段,还可以转换 Model.put(...)
|
public static final TioJsonKit me
protected static SyncWriteMap<Class<?>,TioToJson<?>> cache
protected static int maxBufferSize
protected static boolean treatModelAsBean
protected static boolean skipNullValueField
protected static boolean longToString
protected static java.util.function.Function<String,String> modelAndRecordFieldNameConverter
protected static java.util.function.Function<Object,TioToJson<?>> toJsonFactory
public static void addToJson(Class<?> type, TioToJson<?> toJson)
例子:
ToJson toJson = (value, depth, ret) -> {
ret.addLong(value.getTime());
};
TioJson.addToJson(Timestamp.class, toJson);
以上代码为 Timestamp 类型的 json 转换定制了转换规则
将其转换成了 long 型数据
public static boolean checkDepth(int depth,
JsonResult ret)
public static void modelAndRecordToJson(Map<String,Object> map, int depth, JsonResult ret)
public static void mapToJson(Map<?,?> map, int depth, JsonResult ret)
public static void iteratorToJson(Iterator it, int depth, JsonResult ret)
public static com.litongjava.tio.utils.json.TioJsonKit.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(java.util.function.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(java.util.function.Function<Object,TioToJson<?>> toJsonFactory)
public static void setSkipNullValueField(boolean skipNullValueField)
public static void setLongToString(boolean b)
public static boolean getLongToString()
Copyright © 2024. All rights reserved.