如何正確理解JSON.NET標簽加載
JQuery1.2后getJSON方法支持跨域讀取json數(shù)據(jù),原理是利用一個叫做jsonp的概念。當然,究其本質(zhì)還是通過JSON.NET標簽動態(tài)加載js,似乎這是實現(xiàn)真正跨域的***方法。下面進行分析研究。
1、getJSON的用法JQuery手冊已經(jīng)寫得很詳細,參考手冊就可以了,很簡單。需要指出的一點是getJSON利用的jsonp需要客戶端與服務(wù)端作出配合。#t#
2、客戶端傳遞的URL里要包含callback變量,以形如callback=?的形式結(jié)尾。(jquery會隨機生成一個字符串替換?傳遞給服務(wù)端),服務(wù)端獲取客戶端傳遞的callback的值callbackValue,和需要傳遞的json字符串構(gòu)成 JSON.NET’(’.json.’)'傳回給客戶端(示例為php字符串連接方式,其他語言類似) 
- 一、可以通過Javascript中的eval函數(shù)把符合一定格式的字符串轉(zhuǎn)化成JSON對象
 - <script language="javascript">
 - function ShowJsonString()
 - {
 - response = (
 - "[{ name: 'Joe', age: '30', gender: 'M'},{ name: 'Chandler', age: '32', gender: 'M'},{ name: 'Rose', age: '31', gender: 'M'}]" //字符串形式
 - );
 - var response1 = "({ name: 'Vicson', age: '30', gender: 'M'})"; //字符串形式,這里的小括號不能少
 - json = eval(response);
 - json1 = eval(response1);
 - alert(json[0].name + "," + json[1].age + "," +json[2].gender);
 - alert(json1.name);
 - }
 - ShowJsonString();
 - </script>
 - 二、直接定義JSON對象
 - <script language="javascript">
 - function ShowJsonObject()
 - {
 - var user =
 - {
 - username:"andy",
 - "age":20,
 - "info": { "tel": "25003614", "cellphone": "882"},
 - "address":
 - [
 - {city:"shenzhen","postcode":"0755"},
 - {"city":"guangzhou","postcode":"020"}
 - ] //address是一個數(shù)組
 - } //對象形式
 - alert(user.username);
 - alert(user.age);
 - alert(user.info.cellphone);
 - alert(user.address[0].city);
 - alert(user.address[0].postcode);
 - }
 - ShowJsonObject();
 - </script>
 
JSON.NET的規(guī)則很簡單: 對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結(jié)束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。















 
 
 

 
 
 
 