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數據格式:
 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM