欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

gson解析三種json

老白2年前8瀏覽0評(píng)論

Gson是一個(gè)輕便的Java庫,用于將JSON表達(dá)式轉(zhuǎn)換為Java對(duì)象或?qū)ava對(duì)象轉(zhuǎn)換為JSON表達(dá)式。它支持三種不同類型的JSON解析格式:

第一種JSON格式是簡單的JSON格式,這種格式在JavaScript和AJAX中常用。它使用JSON對(duì)象或JSON數(shù)組表示JSON數(shù)據(jù)。下面是一個(gè)示例:

{
"name": "Lucy",
"age": 23,
"address": {
"province": "Shandong",
"city": "Qingdao"
},
"hobby": ["reading", "running"]
}

可以使用Gson庫來解析上述格式的JSON。首先,需要定義一個(gè)Java類來存儲(chǔ)JSON數(shù)據(jù):

class Person {
String name;
int age;
Address address;
Listhobby;
class Address {
String province;
String city;
}
}

然后,使用Gson庫將JSON數(shù)據(jù)轉(zhuǎn)換為Java對(duì)象:

String json = "{...}"; // 上述JSON數(shù)據(jù)
Gson gson = new Gson();
Person person = gson.fromJson(json, Person.class);

第二種JSON格式是Gson專有的JSON格式,它支持將JSON數(shù)據(jù)轉(zhuǎn)換為Java Map或Java List。這種格式是通過Gson的fromJson方法將JSON數(shù)據(jù)解析為一個(gè)JsonElement對(duì)象,然后通過該對(duì)象的getAsJsonObject、getAsJsonArray和getAsJsonPrimitive方法將其轉(zhuǎn)換為Java對(duì)象。下面是一個(gè)示例:

String json = "{...}"; // 上述JSON數(shù)據(jù)
Gson gson = new Gson();
JsonElement element = gson.fromJson(json, JsonElement.class);
String name = element.getAsJsonObject().get("name").getAsString();
int age = element.getAsJsonObject().get("age").getAsInt();
JsonElement addressElement = element.getAsJsonObject().get("address");
String province = addressElement.getAsJsonObject().get("province").getAsString();
String city = addressElement.getAsJsonObject().get("city").getAsString();
JsonArray hobbyArray = element.getAsJsonObject().get("hobby").getAsJsonArray();
ListhobbyList = new ArrayList<>();
for (JsonElement hobbyElement : hobbyArray) {
hobbyList.add(hobbyElement.getAsString());
}

第三種JSON格式是使用TypeToken來解析復(fù)雜的JSON格式,例如嵌套類和泛型類。在這種情況下,需要提供一個(gè)TypeToken對(duì)象來解析JSON數(shù)據(jù)。下面是一個(gè)示例:

String json = "{...}"; // 上述JSON數(shù)據(jù)
Gson gson = new Gson();
Type personType = new TypeToken<Person<Friend>>() {}.getType();
Person<Friend> person = gson.fromJson(json, personType);
class Friend {
String name;
int age;
}
class Person<T> {
String name;
int age;
T friend;
}

使用TypeToken對(duì)象可以解析類似于上述Person<Friend>這樣的復(fù)雜JSON格式,其中類型參數(shù)可以是任何Java類。