歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

JSON格式生成與JSON解析小例

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

Copyright © Linux教程網 All Rights Reserved