JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,很多時(shí)候我們需要將JSON轉(zhuǎn)換為對(duì)象進(jìn)行處理。在Java開發(fā)中,我們可以使用Gson庫來進(jìn)行JSON和對(duì)象的轉(zhuǎn)換。
Gson庫是Google開源的一個(gè)JSON處理庫,它可以將JSON轉(zhuǎn)換為Java對(duì)象,也可以將Java對(duì)象轉(zhuǎn)換為JSON。以下是一個(gè)簡(jiǎn)單的示例代碼:
//定義一個(gè)Java類 public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } //接收J(rèn)SON并轉(zhuǎn)換為對(duì)象 String json = "{\"name\":\"Tom\",\"age\":20}"; Gson gson = new Gson(); User user = gson.fromJson(json, User.class); //輸出對(duì)象屬性 System.out.println(user.getName()); System.out.println(user.getAge());
在上述代碼中,我們首先定義了一個(gè)名為User的Java類,該類包含name和age兩個(gè)屬性。接著使用Gson庫的fromJson()方法將JSON字符串轉(zhuǎn)換為User對(duì)象,fromJson()方法接收兩個(gè)參數(shù),第一個(gè)參數(shù)是JSON字符串,第二個(gè)參數(shù)是目標(biāo)對(duì)象的類型。最后,我們直接訪問User對(duì)象的屬性即可得到解析后的屬性值。
需要注意的一點(diǎn)是,如果JSON字符串中的屬性名稱和Java類中的屬性名稱不一致,我們可以使用@SerializedName注解來指明對(duì)應(yīng)關(guān)系。
public class User { @SerializedName("user_name") private String name; private int age; //省略getter和setter方法 } String json = "{\"user_name\":\"Tom\",\"age\":20}";
上述代碼中,我們將name屬性上的@SerializedName注解的參數(shù)設(shè)置為"user_name",以指明JSON字符串中的"user_name"屬性與Java類中的"name"屬性對(duì)應(yīng)。