亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

淺談使用java解析和生成JSON

2019-11-26 15:00:38
字體:
來源:轉載
供稿:網友

JSON概述

JSON即javascript object notation,是javascript對象表示法的子集。具有以下特點:

數據放在鍵值對中;
數據由逗號分隔;
花括號表示對象;
方括號表示數組。

JSON的值可以是:

數字(整數或浮點數)
字符串(在雙引號中)
邏輯值(true或false)
數組(方括號內)
對象(花括號內)
null

JSON的基本語法

JSON對象

JSON對象在花括號中書寫,對象可以包含多個鍵值對,例如:

{  "firstName":"John",  "lastName":"Doe"}

JSON數組

JSON數組在方括號中書寫,數組中可以包含多個對象,例如:

{  "employees":[    {"firstName":"John","lastName":"Doe"},    {"firstName":"Anna","lastName":"Smith"},    {"firstName":"Peter","lastName":"Jones"}  ]}

在以上的實例中,根部的花括號表示這是一個JSON對象,該對象的鍵是employees,值是一個JSON數組,在這個數組中有3個JSON對象,每個JSON對象之間也使用逗號分隔。

使用java讀取JSON數據

在JSON官網我們可以查看到各個語法對json的支持,對于java來說比較成熟的是google-gson。

其maven依賴如下:

<dependency>  <groupId>com.google.code.gson</groupId>  <artifactId>gson</artifactId>  <version>2.2.4</version></dependency>

現在編寫程序解析以下的test.json:

{  "cat":"it",  "languages":[    {"id":1,"ide":"Eclipse","name":"Java"},    {"id":2,"ide":"Xcode","name":"Swift"},    {"id":3,"ide":"Visual Studio","name":"C#"}  ],  "pop":true}

以下的代碼將解析以上的json數據:

public void readJSON() throws Exception{  // 創建json解析器  JsonParser parser = new JsonParser();   // 使用解析器解析json數據,返回值是JsonElement,強制轉化為其子類JsonObject類型  JsonObject object = (JsonObject) parser.parse(new FileReader("test.json"));  // 使用JsonObject的get(String memeberName)方法返回JsonElement,再使用JsonElement的getAsXXX方法得到真實類型  System.out.println("cat = " + object.get("cat").getAsString());  // 遍歷JSON數組  JsonArray languages = object.getAsJsonArray("languages");  for (JsonElement jsonElement : languages) {    JsonObject language = jsonElement.getAsJsonObject();    System.out.println("id = " + language.get("id").getAsInt() + ",ide = " + language.get("ide").getAsString() + ",name = " + language.get("name").getAsString());  }  System.out.println("pop = " + object.get("pop").getAsString());}

使用java生成JSON數據

生成JSON數據的關鍵是JSON對象中的add和addProperty兩個方法。前者用于向JSON對象中添加數組或者另一個JSON對象,后者用于為JSON對象添加屬性。以下的代碼將生成上面例子中的test.json。

public void createJSON() throws IOException{  JsonObject object = new JsonObject(); // 創建一個json對象  object.addProperty("cat", "it");    // 為json對象添加屬性    JsonArray languages = new JsonArray(); // 創建json數組  JsonObject language = new JsonObject();  language.addProperty("id", 1);  language.addProperty("ide", "Eclipse");  language.addProperty("name", "java");  languages.add(language);        // 將json對象添加到數組   language = new JsonObject();  language.addProperty("id", 2);  language.addProperty("ide", "XCode");  language.addProperty("name", "Swift");  languages.add(language);  language = new JsonObject();  language.addProperty("id", 3);  language.addProperty("ide", "Visual Studio");  language.addProperty("name", "C#");  languages.add(language);  object.add("languages", languages);  // 將數組添加到json對象    object.addProperty("pop", true);  String jsonStr = object.toString();  // 將json對象轉化成json字符串  PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("data.json")));  pw.print(jsonStr);  pw.flush();  pw.close();}

在JAVA中構造和解析JSON我用的是org.json,下面是兩個函數,一個是創建JSON,一個是從文本構造JSON并解析之。

創建json

//construct json and output it  public String jsonTest() throws JSONException{   JSONObject json=new JSONObject();   JSONArray jsonMembers = new JSONArray();   JSONObject member1 = new JSONObject();   member1.put("loginname", "zhangfan");   member1.put("password", "userpass");   member1.put("email","10371443@qq.com");   member1.put("sign_date", "2007-06-12");   jsonMembers.put(member1);    JSONObject member2 = new JSONObject();   member2.put("loginname", "zf");   member2.put("password", "userpass");   member2.put("email","8223939@qq.com");   member2.put("sign_date", "2008-07-16");   jsonMembers.put(member2);   json.put("users", jsonMembers);    return json.toString(); } 

 解析json

//construct json from String and resolve it. public String jsonTest2() throws JSONException{   String jsonString="{/"users/":[{/"loginname/":/"zhangfan/",/"password/":/"userpass/",/"email/":/"10371443@qq.com/"},{/"loginname/":/"zf/",/"password/":/"userpass/",/"email/":/"822393@qq.com/"}]}";   JSONObject json= new JSONObject(jsonString);   JSONArray jsonArray=json.getJSONArray("users");   String loginNames="loginname list:";   for(int i=0;i<jsonArray.length();i++){     JSONObject user=(JSONObject) jsonArray.get(i);     String userName=(String) user.get("loginname");     if(i==jsonArray.length()-1){       loginNames+=userName;     }else{       loginNames+=userName+",";     }   }   return loginNames; } 

 JAVA中處理JSON還是相當方便的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www.美女亚洲精品| 欧美激情啊啊啊| 超碰97人人做人人爱少妇| 国产精品大片wwwwww| 国产视频久久久久| 一区二区在线视频| 国产在线视频91| 色综合久久久久久中文网| 欧洲日本亚洲国产区| 伦理中文字幕亚洲| 2019日本中文字幕| 国产免费一区视频观看免费| 欧美精品18videos性欧美| 欧美性videos高清精品| 日韩中文字幕网址| 国产国语videosex另类| 色噜噜亚洲精品中文字幕| 97视频国产在线| 成人在线视频网站| 国产精品久久久久久久久免费| 久久影院在线观看| 欧美电影免费观看电视剧大全| 国产欧美精品一区二区三区介绍| 亚洲男人天堂视频| 91影院在线免费观看视频| 国产日韩精品视频| 久久国产精品久久久久久| 4444欧美成人kkkk| 国产精欧美一区二区三区| 精品人伦一区二区三区蜜桃免费| 国产精品欧美一区二区三区奶水| 亚洲大尺度美女在线| 成人性生交大片免费看小说| 国产精品伦子伦免费视频| 成人免费看吃奶视频网站| 精品久久久久久久久久ntr影视| 在线播放国产一区二区三区| 国产精品久久久久久亚洲调教| 亚洲第一综合天堂另类专| 午夜精品福利视频| 欧美日韩免费区域视频在线观看| 久久久久中文字幕2018| 欧美精品精品精品精品免费| www.久久久久| 日韩在线视频网站| 国产一区二区三区在线免费观看| 日韩av黄色在线观看| 97高清免费视频| 大胆欧美人体视频| 97视频在线观看视频免费视频| 日韩动漫免费观看电视剧高清| 成人免费视频网址| 欧美亚洲成人精品| 亚洲精品久久久久久下一站| 中文字幕av一区| 国产精品自拍偷拍| 成人免费淫片视频软件| 亚洲最大在线视频| 国产精品网站大全| 久久久女人电视剧免费播放下载| 亚洲自拍高清视频网站| 成人av电影天堂| 亚洲欧美制服综合另类| 另类专区欧美制服同性| 4k岛国日韩精品**专区| 亚洲国产精彩中文乱码av| 亚洲日韩中文字幕| 青草成人免费视频| 国产成人在线精品| 中文字幕欧美日韩精品| 久久久免费高清电视剧观看| 亚洲国产第一页| 一区二区福利视频| 欧美大秀在线观看| 国产成人97精品免费看片| 亚洲伊人成综合成人网| 综合激情国产一区| 欧美性猛交xxxxx水多| 国产激情久久久| 欧美猛少妇色xxxxx| 亚洲成人激情在线观看| 国产欧美亚洲精品| 国产欧美一区二区三区在线| 亚洲free性xxxx护士白浆| 亚洲成在人线av| 国产精品视频一区二区三区四| 亚洲欧洲黄色网| 日韩精品在线影院| 午夜精品蜜臀一区二区三区免费| www.国产精品一二区| 精品五月天久久| 亚洲天堂av在线免费观看| 国产精品亚洲激情| 91视频免费在线| 一区二区在线视频| 久久精品久久久久久国产 免费| 日韩欧美第一页| 国产精品av在线| 日韩欧美亚洲国产一区| 国产成人综合久久| 亚洲国产日韩精品在线| 国产精品第10页| 日本一区二区在线免费播放| 亚洲成色www8888| 性色av香蕉一区二区| 在线观看日韩欧美| 国产一区二区三区精品久久久| 国产成人aa精品一区在线播放| 欧美激情视频播放| 色妞色视频一区二区三区四区| 久久精品国产精品亚洲| 国产午夜精品一区理论片飘花| 国产精品人成电影在线观看| 国产精品劲爆视频| 2019中文字幕在线观看| 国产精品成人av性教育| 国模精品系列视频| 精品国产一区二区三区在线观看| 欧美精品电影免费在线观看| 国产免费亚洲高清| 欧美日韩一区免费| 97av在线视频免费播放| 都市激情亚洲色图| 亚洲福利在线视频| 精品香蕉一区二区三区| 久久69精品久久久久久国产越南| 国产欧美亚洲视频| 亚洲日本中文字幕免费在线不卡| 久久综合亚洲社区| 一本大道香蕉久在线播放29| 成人av资源在线播放| 日韩电影在线观看中文字幕| 欧美国产高跟鞋裸体秀xxxhd| 136fldh精品导航福利| 国产精品www色诱视频| 国产欧美精品久久久| 久久成人国产精品| 45www国产精品网站| 51久久精品夜色国产麻豆| 亚洲精品福利资源站| 亚洲精品在线视频| 国产精品久久久久久久久久久久久| 欧洲亚洲免费在线| 4k岛国日韩精品**专区| 欧美一性一乱一交一视频| 欧美日韩在线视频一区二区| 国产亚洲欧美日韩一区二区| 久久久久久久久91| 国产精品精品久久久| 中文字幕亚洲欧美一区二区三区| 欧美电影免费观看高清完整| 亚洲丝袜一区在线| 成人福利免费观看| 亚洲美女av黄| 2023亚洲男人天堂| 国产亚洲美女精品久久久| 欧美一级视频一区二区| www.日韩系列| 久久中文久久字幕| 亚洲欧美另类中文字幕| 国内精品视频久久| 欧美野外猛男的大粗鳮| 亚洲欧美日韩高清| 成人免费观看网址|