JSON的使用_檢查JSON工具

  json簡單說就是javascript中的對象和數組。

  1、對象:對象在js中表示爲“{}”擴起來的內容,數據結構爲 {key:value,key:value,...}的鍵值對的結構,在面向對象的語言中,key爲對象的屬性,value爲對應的屬性值,所以很容易理解,取值方法爲 對象.key 獲取屬性值,這個屬性值的類型可以是 數字、字符串、數組、對象幾種。

  2、數組:數組在js中是中括號“[]”擴起來的內容,數據結構爲 ["java","javascript","vb",...]或[{key:"value"},{key:"value"}],取值方式和所有語 言中一樣,使用索引獲取,字段值的類型可以是 數字、字符串、數組、對象幾種。

   現在細說兩個結構的使用。

對象結構:

{
  no1:{
    stuNo: 'no1' ,
    stuName: '張三'
  }
}
以上是一個完整的json對象建構。no1表示一個學生對象,它可以實現存在文本中或者由Serlvet輸出而成,代碼模式爲:
StringBuffer sb =  new  StringBuffer();
sb.append( "{" );
        sb.append( "student:{" );
        sb.append( "    stuNo:'10000'," );
        sb.append( "    stuName:'張三'," );
        sb.append( "  }" );
sb.append( "}" );
out.print(sb.toString());
通過jQuery很容易就可以通過Serlvet獲取到這條數據。
$.getJSON(url,  function (data) { //url是輸出json數據的頁面地址,data便是從servlet輸出的json數據,

        for  ( var  stuNo in  data) {//對象是鍵值對的結構,和Map類似,通過鍵能獲取相應的值。
             var  stu = data[stuNo];//這裏獲取的便是no1的對象
             var stuNo = stu.stuNo; //對象的屬性可以直接用對象.屬性的方式得到屬性值
             var  stuName=stu.stuName;
            //至此,我們便能獲取一條完整的student信息了。
          }        },  "json" );
一個簡單的JSON對象結構爲:{stuNo:'100',stuName:'張三'}。同樣是通過data.stuNo,data.stuName的方式獲取裏面的值。
對象的具體形式:
   1、對象是一個“名稱/值”集合,如 no1:{stuNo:'no1',stuName:'張三'} 這個對象的鍵是no1,通過no1能獲取所有信息,再通過no1.stuNo的鍵能獲取stuNo的值。
   2、對象以{ 開始,以 }結束。每個名稱後面跟一個冒號:,如no1、stuNo後面都是以冒號結尾。
   3、每個“鍵/值”間都用逗號,分開。如:stuNo:'no1',stuName:'張三' 。
    
 
 
數組結構:
[
    {"stuNo":"100","stuName":"張三"}
]
這個簡單的數組結構可就無法通過鍵來取值,得使用數組的索引方式取值。如:var student1=data[0];
這樣便獲取了第一條學生信息,想要進一步取得stuNo和stuName的值,就可以直接用鍵來取了。之所以數組結構裏的具體取值跟對象結構取值一樣,看看每條信息的格式就明白了,以{ 開始,以 }結束,這不就是一個對象麼。所以說來,數組結構裏可以包含對象結構。
JSON數組的具體形式:
  1、數組以“[”開始,以“]”結束,值之間用逗號,分開。
    
對象&數組
{
"學生" :
[
{ "姓名" : "小明" , "年齡" : 23 },
{ "姓名" : "大憨" , "年齡" : 24 }
]
}
  此Json對象包括了一個學生數組,而學生數組中的值又是兩個Json對象。
對象結構裏可以包含數組結構,同樣數組結構裏也能包含數組。這就好比對象裏可以有數組類型的屬性,而數組也有對象數組之分。
對象結構的遍歷得通過鍵來循環,而數組結構通過索引遍歷。
 
JSON數據內,不同的主條目之間,記錄的實際名稱/值可以不一樣
{
  no1 : {
    stuNo : 'no1' ,
    stuName : '張三'
  },
  no2 : {
    stuNo : 'no2' ,
    stuName : '李四',
    sex:'男'
  }
}
這裏no2對象中多了個sex的名稱,這在JSON中也是允許的。JSON數據是完全動態的,允許在JSON結構的中間改變數據的方式。處理JSON格式的數據時,沒有需要遵守的預定義的約束。
 
訪問數據:
在Javascript中,JSON數據可以直接賦值給變量:
var student={ "學生" : [{ "姓名" : "小明" , "年齡" : 23 }]}
這裏student實質已經成爲了一個數組,再訪問裏面的數據只需通過點號表示法來獲取。得到小明的Javascript代碼:
var xiaoming=studetn.學生[0].姓名
 
通過“學生”得到一個數組,然後直接從索引0得到第一條記錄,最後訪問“姓名”鍵的值,結果是“小明”。
 
修改數據:
studetn.學生[ 0 ].姓名="小紅"
在將字符串轉換爲 JavaScript 對象之後,就可以像這樣修改變量中的數據。
修改數據的前提是對象得是文本格式,如果是直接從其他地方傳進來的JSON數據,JavaScript會以對象來處理,無法通過數組的形式修改值。兩種方式可以把JSON對象轉換爲JSON文本,一是eval(JSON),二是:JSON.toJSONString();
這樣就可以獲得一個能在任何地方使用的JSON文本字符串。
toJSONString()方法還能直接將其他對象轉換爲JSON文本,獲得格式化的數據。
 
JSON數據有嚴格的格式,逗號,大括號,中括號必須補齊,不能多不能少。
推薦個網站檢查自己的JSON數據格式:
 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章