乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Java下json的解析方法

       昵稱27831725 2017-12-04

      GSON:

               Gson是google開發(fā)的json格式解析包,其特點(diǎn)是在解析json之前必須知道所傳輸?shù)膉son數(shù)據(jù)格式,并定義一系列層次結(jié)構(gòu)與json層次結(jié)構(gòu)相同的類。換句話說,如果傳輸?shù)膉son結(jié)構(gòu)為:

      1. {  
      2.     "name":"relin",  
      3.     "sex":"male",  
      4.     "age":26  
      5. }  
      那么,就必須預(yù)先定義一個(gè)成員變量名字與json中屬性名字完全相同的類:

      1. class Person {  
      2.     public String name;  
      3.     public String sex;  
      4.     public int age;  
      5. }  

      Gson解析json有三個(gè)特點(diǎn):

      •       如果預(yù)先定義的類中不包含json中的某個(gè)屬性,則該屬性就不會(huì)被解析出來,但是其他成員仍然能正常解析
      •       命名必須完全相同,否則不會(huì)被正常解析
      •       類的成員變量可以是public,也可以是private

      讓我們來看兩個(gè)簡(jiǎn)單的解析與反解析過程:

      1. 定義類:

      1. package com.relin.gson.data;  
      2.   
      3. public class Person {  
      4.     private String name;      
      5.     private int age;      
      6.     private int sex;  
      7.     /**     * @return the name     */      
      8.     public String getName() {  
      9.         return name+"*****";      
      10.     }      
      11.       
      12.     /**     * @param name the name to set     */     
      13.     public void setName(String name) {    
      14.         this.name = name;    
      15.     }      
      16.       
      17.     /**     * @return the age     */      
      18.     public int getAge() {          
      19.         return age;      
      20.     }      
      21.       
      22.     /**     * @param age the age to set     */      
      23.     public void setAge(int age) {   
      24.         this.age = age;      
      25.         }          
      26.       
      27.     @Override      
      28.     public String toString() {  
      29.         return name + ":" + age;    
      30.     }  
      31. }  

      2. String to json:

      1. private static boolean StringToJson(){  
      2.     try{  
      3.         String str = "{\"name\":\"name0\",\"age\":0}";  
      4.         Gson gson = new Gson();  
      5.         Person person= gson.fromJson(str, Person.class);  
      6.         System.out.println(person);  
      7.     } catch (Exception e){  
      8.         return false;  
      9.     }  
      10.     return true;  
      11. }  

      3. Json to String:

      1. private static boolean JsonToString(){  
      2.     try{  
      3.         Gson gson = new Gson();  
      4.         ArrayList<Person> persons = new ArrayList<Person>();  
      5.         for (int i = 0; i < 10; i++) {  
      6.             Person p = new Person();       
      7.             p.setName("name" + i);       
      8.             p.setAge(i * 5);       
      9.             persons.add(p);  
      10.         }  
      11.         String str = gson.toJson(persons);  
      12.         System.out.println(str);  
      13.     } catch (Exception e){  
      14.         return false;  
      15.     }  
      16.     return true;  
      17. }  

      4. 調(diào)用可以如下所示:

      1. package com.relin.gson;  
      2.   
      3. import java.util.ArrayList;  
      4.   
      5. import com.google.gson.Gson;  
      6. import com.relin.gson.data.Person;  
      7. import com.relin.gson.data.UrlResponse;  
      8.   
      9. public class Example {  
      10.     private static boolean JsonToString(){  
      11.         try{  
      12.             Gson gson = new Gson();  
      13.             ArrayList<Person> persons = new ArrayList<Person>();  
      14.             for (int i = 0; i < 10; i++) {  
      15.                 Person p = new Person();       
      16.                 p.setName("name" + i);       
      17.                 p.setAge(i * 5);       
      18.                 persons.add(p);  
      19.             }  
      20.             String str = gson.toJson(persons);  
      21.             System.out.println(str);  
      22.         } catch (Exception e){  
      23.             return false;  
      24.         }  
      25.         return true;  
      26.     }  
      27.       
      28. <pre name="code" class="java">  private static boolean StringToJson(){  
      29.         try{  
      30.             String str = "{\"name\":\"name0\",\"age\":0}";  
      31.             Gson gson = new Gson();  
      32.             Person person= gson.fromJson(str, Person.class);  
      33.             System.out.println(person);  
      34.         } catch (Exception e){  
      35.             return false;  
      36.         }  
      37.         return true;  
      38.     }</pre>public static void main(String agrs[]){StringToJson();<br>  
      39. <pre name="code" class="java">                JsonToString()</pre>        }}<p></p>  
      40. <pre></pre>  
      41. <br>  
      42. <p></p>  
      43. <h2><a name="t1"></a>JSONObject<br>  
      44. </h2>  
      45. <p>另一種用與解析json的java api是來自org.json。用其相對(duì)比較直觀,其中包含有個(gè)主要的類:</p>  
      46. <ul>  
      47. <li>JSONObject相當(dāng)與json中的字典類型</li></ul>  
      48. <ul>  
      49. <li>JSONArray相當(dāng)與json中的數(shù)組類型<br>  
      50. </li></ul>  
      51. <p>基本用法如下:</p><pre name="code" class="java">            //將String字符串轉(zhuǎn)換為json對(duì)象  
      52.             JSONObject jsonObject = new JSONObject(strbody);  
      53.             //提取int型的屬性,其屬性名為From,其他boolean等類型也類似  
      54.             int from = jsonObject.getInt("From");  
      55.             //提取json數(shù)組  
      56.             JSONArray toData= jsonObject.getJSONArray("ToData");</pre><br>  
      57. <br>  
      58. <p></p>  
      59. <br>  
      60.                       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多