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

java json嵌套解析

錢艷冰1年前7瀏覽0評論

在Java中解析JSON數(shù)據(jù)是非常常見的操作,而其中又涉及到JSON中的嵌套解析。下面我們就來詳細(xì)講解一下Java中JSON嵌套解析的操作方法。

//定義JSON數(shù)據(jù)
String jsonStr = "{\"name\":\"Tom\",\"age\":20,\"job\":{\"title\":\"engineer\",\"salary\":10000}}";
//創(chuàng)建JSON對象
JSONObject obj = new JSONObject(jsonStr);
//獲取name和age值
String name = obj.getString("name");
int age = obj.getInt("age");
//獲取job對象
JSONObject jobObj = obj.getJSONObject("job");
//獲取job對象的title和salary值
String title = jobObj.getString("title");
int salary = jobObj.getInt("salary");

以上代碼中,我們首先定義了一個(gè)JSON字符串,其中包括了一個(gè)job對象,這個(gè)對象嵌套在了最外層的JSON對象中。然后我們通過JSONObject類的構(gòu)造函數(shù)將JSON字符串轉(zhuǎn)換為JSON對象。接著我們通過getString()和getInt()方法獲取最外層JSON對象中的name和age字段的值,并使用getJSONObject()方法獲取到嵌套的job對象。最后通過getString()和getInt()方法獲取到j(luò)ob對象中的title和salary字段的值。

當(dāng)JSON數(shù)據(jù)中存在多層嵌套時(shí),我們可以通過套嵌的方式逐層獲取嵌套的JSONObject對象和JSONArray數(shù)組對象。以下代碼演示了三層JSON嵌套的解析方法。

//定義JSON數(shù)據(jù)
String jsonStr = "{\"name\":\"Tom\",\"age\":20,\"job\":{\"title\":\"engineer\",\"salary\":10000,\"projects\":[{\"name\":\"project1\",\"year\":\"2020\"},{\"name\":\"project2\",\"year\":\"2021\"}]}}";
//創(chuàng)建JSON對象
JSONObject obj = new JSONObject(jsonStr);
//獲取name和age值
String name = obj.getString("name");
int age = obj.getInt("age");
//獲取job對象
JSONObject jobObj = obj.getJSONObject("job");
//獲取job對象的title和salary值
String title = jobObj.getString("title");
int salary = jobObj.getInt("salary");
//獲取projects數(shù)組
JSONArray projectsArr = jobObj.getJSONArray("projects");
//循環(huán)遍歷projects數(shù)組,獲取數(shù)組中的每個(gè)對象的值
for (int i = 0; i< projectsArr.length(); i++) {
JSONObject projectObj = projectsArr.getJSONObject(i);
String projectName = projectObj.getString("name");
int projectYear = projectObj.getInt("year");
}

以上代碼中,我們定義的JSON字符串比之前多嵌套了一層,具體解析方式也更加復(fù)雜。我們同樣先通過JSONObject類的構(gòu)造函數(shù)將JSON字符串轉(zhuǎn)換為JSON對象,然后通過getString()和getInt()方法獲取最外層的name和age字段的值。接著我們再獲取到j(luò)ob對象,同樣使用getString()和getInt()方法獲取job對象中的title和salary字段的值。而在這個(gè)job對象中,我們還存在一個(gè)projects數(shù)組,我們用getJSONArray()方法獲取到該數(shù)組對象后,通過循環(huán)遍歷這個(gè)數(shù)組,取出數(shù)組中每個(gè)對象的name和year值。這樣就完成了三層嵌套的JSON數(shù)據(jù)解析操作。