java中的JSON操作

來源:互聯網
上載者:User

(1)JSON: javaScript object Notation(javaScript對象標記法)

比XML資料更小、更快、更容易解析。

資料由名稱-值 對錶示,由逗號分隔開,花括弧儲存對象,方括弧儲存數組。

Json值可以是:數字/字串/邏輯值/數組/對象/null

Json對象:對象可以包涵多個索引值對:

{ “firstname”:”John”,“lastname“:”Doe“}

JSON數組:可以包含多個對象

{

“employees”: [

      { “firstname”:”John”,“lastname“:”Doe“},

       {“firstname”:”aaa”,“lastname“:”bbb“ },

       {……}

]

}

 

(2)使用Java讀取JSON資料

www.json.org找到Java庫 à Google-gson-2.2.4下載

或直接百度搜尋下載http://download.csdn.net/detail/qq_20523943/9719545

將此jar檔案放到項目中(可以建立一個Lib檔案夾)

JSON資料例子:(test.json)

{

"cat":"it",

     "languages":[

     {"id":1,"name":"java","ide":"eclipse"},

     {"id":2,"name":"swift","ide":"XCode"},

     {"id":3,"name":"C#","ide":"VIsualStudio"}

     ],

    "pop":true

}

解析代碼:

JsonParserparser = new JsonParser();

JsonObjectobj = (JsonObject) parser.parse(new FileReader("test.json"));

System.out.println("cat=" +obj.get("cat").toString());

System.out.println("pop=" +obj.get("pop").toString());

JsonArrayarray = obj.get("languages").getAsJsonArray();

for(int i = 0;i<array.size();i++)

{

System.out.println("---------");

JsonObjectsubObject = array.get(i).getAsJsonObject();

System.out.println("id="+subObject.get("id"));   

System.out.println("name="+subObject.get("name"));   

System.out.println("ide="+subObject.get("ide")); 

}

(3)使用Java建立JSON資料

JsonObject obj = new JsonObject();

        //addProperty是添加屬性(數值、數組等);add是添加json對象

        obj.addProperty("cat", "it");

        obj.addProperty("pop", true);

        JsonArray array = new JsonArray();

       

        JsonObject lan1 = new JsonObject();

        lan1.addProperty("id", 1);

        lan1.addProperty("name","Java");

        lan1.addProperty("ide", "Eclipse");

        array.add(lan1);

       

        JsonObject lan2 = new JsonObject();

        lan2.addProperty("id", 2);

        lan2.addProperty("name","swift");

        lan2.addProperty("ide", "Xcode");

        array.add(lan2);

       

        JsonObject lan3 = new JsonObject();

        lan3.addProperty("id", 3);

        lan3.addProperty("name","C#");

        lan3.addProperty("ide", "VisualStudio");

        array.add(lan3);

       

        obj.add("languages", array);

        //控制台輸出         System. out.println( obj.toString()

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.