Solon v3.7.1

snack4 - Json 序列化之命名风格控制

</> markdown

snack4 支持小蛇和小驼峰风格,且支持相互转换。

1、涉及命名风格转换的特性:

包括了读、写两种时态的特性

特性描述
Write_UseSmlCamelStyle写入时名字(强制)使用小骆峰风格
Write_UseSmlSnakeStyle写入时名字(强制)使用小蛇风格
Read_ConvertSnakeToSmlCamel读取时小蛇转为小驼峰风格
Read_ConvertCamelToSmlSnake读取时小驼峰转为小蛇风格

2、示例

  • Write_UseSmlCamelStyle,写入时名字(强制)使用小骆峰风格
@Test
public void Write_UseSmlCamelStyle() {
    Map<String, Object> data = new HashMap<>();
    data.put("user_id", 1);

    String json = ONode.serialize(data, Feature.Write_UseSmlCamelStyle);
    Assertions.assertEquals("{\"userId\":1}", json);
}
  • Write_UseSmlSnakeStyle,写入时名字(强制)使用小蛇风格
@Test
public void Write_UseSmlSnakeStyle() {
    Map<String, Object> data = new HashMap<>();
    data.put("userId", 1);

    String json = ONode.serialize(data, Feature.Write_UseSmlSnakeStyle);
    Assertions.assertEquals("{\"user_id\":1}", json);
}
  • Read_ConvertSnakeToSmlCamel,读取时把小蛇转为小驼峰
@Test
public void Read_ConvertSnakeToSmlCamel() {
    assert ONode.ofJson("{user_info:'1'}", Feature.Read_ConvertSnakeToSmlCamel)
            .get("userInfo").isString();

    assert ONode.ofJson("{user_info:'1'}")
            .get("userInfo").isNull();
}
  • Read_ConvertCamelToSmlSnake,读取时把小驼峰转为小蛇
@Test
public void Read_ConvertCamelToSmlSnake() {
    assert ONode.ofJson("{userInfo:'1'}", Feature.Read_ConvertCamelToSmlSnake)
            .get("user_info").isString();

    assert ONode.ofJson("{userInfo:'1'}")
            .get("user_info").isNull();
}