在Gson中,可以通过自定义FieldNamingStrategy
来实现不同的字段命名策略。以下是一个简单的示例,展示了如何实现一个将下划线命名转换为驼峰命名的FieldNamingStrategy
:
import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class Main { public static void main(String[] args) { // 创建一个自定义的FieldNamingStrategy FieldNamingStrategy fieldNamingStrategy = new FieldNamingPolicy() { @Override public String translateName(String fieldName) { StringBuilder translatedName = new StringBuilder(); boolean shouldCapitalize = true; for (char c : fieldName.toCharArray()) { if (Character.isUnderscore(c)) { shouldCapitalize = true; } else if (shouldCapitalize) { translatedName.append(Character.toUpperCase(c)); shouldCapitalize = false; } else { translatedName.append(c); } } return translatedName.toString(); } }; // 使用自定义的FieldNamingStrategy创建Gson实例 Gson gson = new GsonBuilder() .setFieldNamingPolicy(fieldNamingStrategy) .create(); // 测试数据 Person person = new Person("John", "Doe"); // 转换为JSON字符串 String jsonString = gson.toJson(person); System.out.println(jsonString); // 输出: {"firstName":"John","lastName":"Doe"} } } class Person { private String firstName; private String lastName; public Person(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } // getter和setter方法 }
在这个示例中,我们创建了一个自定义的FieldNamingStrategy
,它将下划线命名的字段转换为驼峰命名。然后,我们使用GsonBuilder
将这个自定义策略应用到Gson实例中。最后,我们使用这个Gson实例将一个包含下划线命名的Person
对象转换为JSON字符串。