既然是說json那就先簡單介紹一下什麼是json吧。
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成。
json的具體數據交換格式:(存的是張飛的個人信息包括姓名、年齡、地址(城市、街道))
{"address":{"street":"和興路","city":"哈爾濱"},"age":22,"name":"張飛"}
如何在編譯器中生成改格式呢?
我們定義一個getJson()方法用於生成此種格式,代碼如下:
getJson()方法
public static String getJson() throws Exception{ String strName = "張飛"; int niAge = 22; //生成一個json對象 JSONObject json = new JSONObject(); //向該json對象中通過put(String,Object)方法,添加屬性和該屬性對應的值 json.put("name", strName); json.put("age", niAge); //json對象中的地址包括城市和街道,所以將地址定義成一個json對象 JSONObject strAddress = new JSONObject(); String strCity = "哈爾濱"; String strStreet = "和興路"; strAddress.put("city", strCity); strAddress.put("street", strStreet); json.put("address", strAddress); System.out.println(json.toString()); return json.toString(); }
下面我們看一個方法來介紹一下,對json數據轉換格式的解析:
我們定義了一個jsonParse(String strJson)的方法用於解析該格式,具體代碼如下:
jsonParse(String strJson):
public static void jsonParse(String strJson) throws Exception{ //創建json對象 JSONObject json = new JSONObject(strJson); //通過json的getString(String)方法獲得對應屬性的屬性值 String name = json.getString("name"); int age = json.getInt("age"); //通過json的getJSONObject(String)方法獲得此json對象中定義的json對象(就是對json的嵌套使用) JSONObject address = json.getJSONObject("address"); String city = address.getString("city"); String street = address.getString("street"); //輸入獲得的json對象中屬性值 System.out.println("姓名:"+name+",年齡:"+age+",城市:"+city+",街道:"+street); }
我們通過一個main函數調用上面兩個方法看一下具體的結果:
main函數:
public class Json { public static void main(String[] args) throws Exception { //調用getJson()方法 String strJson = getJson(); //調用jsonParse(String)方法 jsonParse(strJson); } }
輸入結果爲:
{"address":{"street":"和興路","city":"哈爾濱"},"age":22,"name":"張飛"}
姓名:張飛,年齡:22,城市:哈爾濱,街道:和興路
在實際中getJson()方法和jsonParse(String)方法應該寫在類Json中,與main()方法並列,這裏分開只是爲了代碼更加清晰的展現。