在Java中使用Gson解析JSON是非常常見的操作,但是在解析過程中常常會遇到大小寫敏感的問題。Gson默認是大小寫敏感的,這意味著當JSON鍵值對中的鍵的大小寫與你的Java類屬性不匹配時,Gson將無法正確地解析JSON。
//JSON字符串 { "name": "Tom", "age": 18, "Gender": "Male" } //Java類 public class User { private String name; private int age; private String gender; } //Gson解析代碼 Gson gson = new Gson(); User user = gson.fromJson(jsonString, User.class); System.out.println(user.getName()); //null System.out.println(user.getAge()); //18 System.out.println(user.getGender()); //null
由于JSON中的“Gender”鍵的大小寫與Java類屬性“gender”不匹配,導致Gson無法正確解析JSON中的該鍵值對。為了解決這個問題,我們可以使用Gson的GsonBuilder類的setFieldNamingPolicy方法來自定義Gson的鍵命名規則。
GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE); //設置為駝峰命名法 Gson gson = gsonBuilder.create(); User user = gson.fromJson(jsonString, User.class); System.out.println(user.getName()); //Tom System.out.println(user.getAge()); //18 System.out.println(user.getGender()); //Male
通過設置FieldNamingPolicy為UPPER_CAMEL_CASE(駝峰命名法),Gson將會將JSON中的“Gender”鍵解析為Java類屬性“Gender”,解決了大小寫敏感的問題。
上一篇vue 2.0插件