然是說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()方法並列,這裡分開只是為了代碼更加清晰的展現。