FastJson默认使用CamelCase,在1.2.15版本之后,FastJson支持配置PropertyNamingStrategy,支持四种策略: CamelCase、PascalCase、SnakeCase和KebabCase。
属性名策略说明:
CamelCase策略,Java对象属性:personId,序列化后属性:persionId
PascalCase策略,Java对象属性:personId,序列化后属性:PersonId
SnakeCase策略,Java对象属性:personId,序列化后属性:person_id
KebabCase策略,Java对象属性:personId,序列化后属性:person-id
属性名策略,案例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package
com.what21.fastjson.fj07;
/**
* 模型对象
*/
public
class
Person {
//ID
public
int
personId;
//名称
public
String personName;
// 邮箱
public
String personEmail;
// 手机号
public
String personPhone;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package
com.what21.fastjson.fj07;
import
com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.PropertyNamingStrategy;
import
com.alibaba.fastjson.parser.ParserConfig;
import
com.alibaba.fastjson.serializer.SerializeConfig;
public
class
FastJsonMain {
/**
* @param args
*/
public
static
void
main(String[] args) {
// 创建对象并赋值
Person person =
new
Person();
person.personId =
21
;
person.personName=
"小奋斗教程"
;
person.personPhone=
"156983444xx"
;
// 序列化配置对象
SerializeConfig config =
new
SerializeConfig();
config.propertyNamingStrategy = PropertyNamingStrategy.CamelCase;;
// 序列化对象
String json = JSON.toJSONString(person,config);
System.out.println(
"反序列 person json -> "
);
System.out.println(json);
// 反序列化配置对象
ParserConfig parserConfig =
new
ParserConfig();
parserConfig.propertyNamingStrategy = PropertyNamingStrategy.CamelCase;
// 反序列化对象
person = JSON.parseObject(json, Person.
class
, parserConfig);
System.out.println(
"反序列化 内容 -> "
);
System.out.print(person.personId +
" "
);
System.out.print(person.personName +
" "
);
System.out.print(person.personEmail +
" "
);
System.out.println(person.personPhone);
}
}
|
反序列 person json ->
{
"personEmail"
:
"[email protected]"
,
"personId"
:
21
,
"personName"
:
"小奋斗教程"
,
"personPhone"
:
"156983444xx"
}
反序列化 内容 ->
21
小奋斗教程
1732482792
@qq
.com 156983444xx