GSON是Google提供的一種Java庫,它可以將Java對象轉(zhuǎn)換為JSON格式的數(shù)據(jù),也可以將JSON數(shù)據(jù)轉(zhuǎn)換為Java對象。
有時候我們需要將嵌套對象轉(zhuǎn)換為JSON數(shù)據(jù),這時候就需要使用GSON來完成轉(zhuǎn)換。
假設(shè)有如下Java類:
class User { String name; int age; Address address; } class Address { String city; String street; }
如果我們想把一個User對象轉(zhuǎn)換為JSON數(shù)據(jù),可以這樣做:
User user = new User(); user.name = "張三"; user.age = 20; Address address = new Address(); address.city = "北京"; address.street = "望京"; user.address = address; Gson gson = new Gson(); String json = gson.toJson(user);
執(zhí)行完以上代碼后,得到的json數(shù)據(jù)如下:
{ "name": "張三", "age": 20, "address": { "city": "北京", "street": "望京" } }
從上面的json數(shù)據(jù)可以看出,GSON將嵌套的Address對象也轉(zhuǎn)換成了JSON數(shù)據(jù)。
如果我們想把JSON數(shù)據(jù)轉(zhuǎn)換為User對象,可以這樣做:
String json = "{\"name\":\"張三\",\"age\":20,\"address\":{\"city\":\"北京\",\"street\":\"望京\"}}"; Gson gson = new Gson(); User user = gson.fromJson(json, User.class);
執(zhí)行完以上代碼后,得到的User對象如下:
User{name='張三', age=20, address=Address{city='北京', street='望京'}}
從以上代碼和數(shù)據(jù)可以看出,GSON可以非常方便地將Java對象和JSON數(shù)據(jù)相互轉(zhuǎn)換。