Json是一種數(shù)據(jù)交換格式,廣泛應(yīng)用于前后端數(shù)據(jù)傳輸。Java中提供了許多處理Json的庫,下面介紹一些常用的用法。
1. 將Java對象轉(zhuǎn)換為Json格式
import com.google.gson.Gson; Gson gson = new Gson(); String json = gson.toJson(object);
gson.toJson() 方法可以將Java對象轉(zhuǎn)換為Json格式的字符串,其中object為需要轉(zhuǎn)換的對象。
2. 將Json格式的字符串轉(zhuǎn)換為Java對象
Gson gson = new Gson(); Object object = gson.fromJson(json, Object.class);
gson.fromJson() 方法可以將Json格式的字符串轉(zhuǎn)換為Java對象,其中json為需要轉(zhuǎn)換的Json格式字符串,Object.class為需要轉(zhuǎn)換的Java對象類型。
3. 解析復(fù)雜Json格式字符串
import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; String json = "{ \"name\": \"Tom\", \"age\": 18, \"address\": { \"province\": \"Shanghai\", \"city\": \"Shanghai\" }, \"hobbies\": [ { \"name\": \"Reading\", \"level\": 3 }, { \"name\": \"Travel\", \"level\": 2 } ] }"; try { JSONObject jsonObject = new JSONObject(json); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); JSONObject address = jsonObject.getJSONObject("address"); String province = address.getString("province"); String city = address.getString("city"); JSONArray hobbies = jsonObject.getJSONArray("hobbies"); for(int i=0; iJson格式的字符串常常嵌套復(fù)雜,上面的代碼演示了如何解析這種復(fù)雜的Json格式字符串。其中,使用了org.json包提供的類。
4. 使用Jackson庫處理Json
import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(object); Object object = mapper.readValue(json, Object.class);Jackson庫也是處理Json的常用庫之一,使用方法與Gson類似。