android中—–JSON資料解析

來源:互聯網
上載者:User

什麼是JSON

1.JSON(JavaScript Object Notation):是一種基於JavaScript語言的輕量級的資料交換格式

2.JSON資料是一系列索引值對的集合

3.JSON已經被大多數開發人員接受,在網路資料的傳輸當中應用非常廣泛

4.JSON相對於XML來講解析稍微方便一些

 

JSON資料格式的特點 JSON VS XML

為什麼使用 JSON?

對於 AJAX 應用程式來說,JSON 比 XML 更快更易使用:

相比 XML 的不同之處
  • 沒有結束標籤
  • 更短
  • 讀寫的速度更快
  • 能夠使用內建的 JavaScript eval() 方法進行解析
  • 使用數組
  • 不使用保留字

 

JSON 資料的書寫格式是:成對的名稱和數值。

成對的名稱和數值包括欄位名稱(在雙引號中),後面寫一個冒號,然後是值:

 

從上到下的符號解說

[{"name":"zhangsan","age":20},{"name":"lisi","age":30}]

 

1.[是開始解析數組

2. {開始解析對象

3."name":"zhangsan"解析解析索引值對

4."age":20解析解析索引值對

5.  }解析對象結束

 

6.     {開始解析對象

7."name":"lisi" 解析索引值對 

8."age":30  解析索引值對 

9.    }解析對象結束

10.    ] 解析數組結束

 輸出結果:

上面是輸出結果,下面是具體代碼實現:

這段代碼講解如何用的 JsonReader 
 1 public class JsonUtils{ 2     public void parseJson(String jsonData){ 3         try{ 4             //如果需要解析JSON資料,首先要產生一個JsonReader對象 5             JsonReader reader = new JsonReader(new StringReader(jsonData)); 6             reader.beginArray();    //開始解析數組 7             while(reader.hasNext()){    //hasNext就是 有沒有下一組 索引值對 8                 String tagName = reader.nextName();        //reader.nextName()  得到下一個索引值對的Name 9                 if(tagName.equals("name")){      10                     System.out.println("name--->" + reader.nextString());11                 }12                 else if(tagName.equals("age")){        //age是 數字,不用加引號13                     System.out.println("age--->" + reader.nextInt());   //nextInt 得到下一個 索引值對的 整形數字  14                 }15                 16             } 17             reader.endObject();18         }19         reader.endArray();20     }21     catch(Exception e){22         e.printStackTrace();    23    }24 }25 }

 

public class MainActivity extends Activity{    //  \" 逸出字元    private string jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";    private Button button;    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        button = (Button)findViewById(R.id.buttonId);        button.setOnClickListener(new ButtonListener());    }    private class ButtonListener implements OnClickListener{            public void onClick(View v){            JsonUtils jsonUtils = new JsonUtils();            jsonUtils.parseJson(jsonData);                }    }}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.