gson是Google提供的一個Java操作JSON數(shù)據(jù)的庫,使用它可以方便地將Java對象序列化為JSON格式或?qū)SON格式數(shù)據(jù)反序列化為Java對象。在訪問JSON數(shù)據(jù)時,gson提供了多種方法,其中最常用的是遍歷JSON數(shù)據(jù)。
//JSON數(shù)據(jù) { "name": "張三", "age": 18, "hobbies": ["籃球", "游泳"] } //Java代碼 String jsonStr = "{\"name\":\"張三\",\"age\":18,\"hobbies\":[\"籃球\",\"游泳\"]}"; JsonParser jsonParser = new JsonParser(); //創(chuàng)建Json解析器 JsonObject jsonObject = jsonParser.parse(jsonStr).getAsJsonObject(); //將JSON字符串轉(zhuǎn)換為JsonObject對象 JsonElement nameElement = jsonObject.get("name");//獲取name屬性對應(yīng)的值 String name = nameElement.getAsString(); //將JsonElement轉(zhuǎn)換為Java字符串 JsonElement ageElement = jsonObject.get("age");//獲取age屬性對應(yīng)的值 int age = ageElement.getAsInt(); //將JsonElement轉(zhuǎn)換為Java整型 JsonArray hobbiesArray = jsonObject.getAsJsonArray("hobbies");//獲取hobbies屬性對應(yīng)的值 Listhobbies = new ArrayList<>(); for(JsonElement hobbyElement : hobbiesArray) { hobbies.add(hobbyElement.getAsString());//將JsonElement轉(zhuǎn)換為Java字符串,并添加到List中 }
以上代碼中,我們首先將JSON字符串轉(zhuǎn)換為JsonObject對象,然后通過get()方法獲取JsonObject中的屬性值,如果屬性值是一個數(shù)組,我們可以通過getAsJsonArray()方法獲取JsonArray對象,并通過for循環(huán)遍歷JsonArray中的元素。
總的來說,使用gson遍歷JSON數(shù)據(jù)非常簡單,只需要根據(jù)JSON數(shù)據(jù)的層次關(guān)系,依次從外層到內(nèi)層獲取JsonElement對象,然后將其轉(zhuǎn)換為Java對象即可。