-
Notifications
You must be signed in to change notification settings - Fork 477
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[QUESTION] fastjson升级到2后,方法签名变化问题 #446
Comments
你是希望单个类这样的NamingPolicy,还是所有的类输出都是这样NamingPolicy? |
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson/2.0.7-SNAPSHOT/ public void test() {
Student test = new Student("z", 12, null);
NameFilter nameFilter = NameFilter.of(PropertyNamingStrategy.UpperCamelCaseWithUnderScores);
String res = JSON.toJSONString(test, nameFilter, JSONWriter.Feature.WriteNullStringAsEmpty);
assertEquals("{\"Age_B1\":12,\"Name_V1\":\"z\"}", res);
}
@Data
@NoArgsConstructor
@AllArgsConstructor
static class Student{
private String nameV1;
private Integer ageB1;
private String emptyC1;
} |
是希望针对所有的类都输出这样的NamingPolicy的。如果只是针对单个类的话,可以使用您文档中的mix_in相关的操作处理别名。 |
此种方式是可以实现上述例子中的这个需求。此外仍有一个疑问,就是是否可以实现1.x中的通过NameFilter进行某些定制化的需求,毕竟转成下划线+每一段首字母大写这个需求可能只是个例。 |
NameFilter是可以,但配置全局的PropertyNamingPolicy还没实现,我还没想好怎么实现 |
https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson/2.0.7-SNAPSHOT/ 更新快照2.0.7-SNAPSHOT版本,已经兼容你原来的写法,不用改代码,如下: @Test
public void test5() {
Student test = new Student("z", 12, null);
SerializeConfig config = new SerializeConfig();
config.propertyNamingStrategy = PropertyNamingStrategy.SnakeCase;
final NameFilter nameFilter = (o12, s, o1) -> {
String res = s.substring(0, 1).toUpperCase();
if (s.length() > 1) {
res += s.substring(1);
}
return res;
};
String res = JSON.toJSONString(test, config, nameFilter, SerializerFeature.WriteNullStringAsEmpty);
assertEquals("{\"Age_b1\":12,\"Name_v1\":\"z\"}", res);
}
@Data
@NoArgsConstructor
@AllArgsConstructor
static class Student{
private String nameV1;
private Integer ageB1;
private String emptyC1;
} |
收到,辛苦辛苦 |
JSON.toJSONString方法签名变化问题
在fastjson1.x中可以通过 SerializeConfig,NameFilter,SerializerFeature 实现对序列化后的数据进行定制,如下列通过SerializeConfig配置驼峰体转下划线, 然后通过NameFilter对 序列化后的key进行修改,通过SerializerFeature指定某些缺省值的处理方式,请问在fastjson2中该如何处理呢?
The text was updated successfully, but these errors were encountered: