1.JSON 概念:JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。它基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON採用完全獨立於語言的文字格式設定,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的資料交換語言。易於人閱讀和編寫,同時也易於機器解析和產生。
2.JSON基礎結構:JSON建構與兩種結構
.“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),記錄(record),結構(struct),字典(dictionary),雜湊表(hash
table),有鍵列表(keyed list),或者關聯陣列(associative array)。
按照最簡單的形式,可以這樣表示名稱 / 值對: { "firstName": "Brett" } ,這個樣本非常基本,而且實際上比等效的純文字名稱 / 值對佔用更多的空間: firstName=Brett ,但是,當將多個名稱 / 值對串在一起時,JSON 就會體現出它的價值了。首先,可以建立包含多個名稱 / 值對的 記錄,比如:
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }
從文法方面來看,這與名稱 / 值對相比並沒有很大的優勢,但是在這種情況下 JSON 更容易使用,而且可讀性更好
. 值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。
當需要表示一組值時,JSON 不但能夠提高可讀性,而且可以減少複雜性。
{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
]}
這些都是常見的資料結構。事實上大部分現代電腦語言都以某種形式支援它們。這使得一種資料格式在同樣基於這些結構的程式設計語言之間交換成為可能。
3.應用案例:
<-- 引入JSON指令碼 -->
<script language="javascript" src="${pageContext.request.contextPath}/js/json2.js"></script>
<script type="text/javascript" language="javascript">
//1.Json串存一個字串
var _jStr=new Object();
var _username="AA";
var _password="BB";
//2.Json串存一個普通數組
var _array=new Array();
_array.push(1);
_array.push(2);
_array.push(3);
_jStr.username=_username;
_jStr.password=_password;
_jStr.array=_array;
var jStr=JSON2.stringify(_jStr);
//3.Json串傳遞一個Json對象
var _jStr1=new Object();
_jStr1.jStr1=_jStr; //_jStr1.jStr1=jStr;
var jStr1=JSON2.stringify(_jStr1);
//4.JSON傳一個JSON數組
var _jStr2=new Object();
var _array1=new Array();
_array1.push(_jStr);
_array1.push(_jStr1);
_jStr2.array1=_array1;
var jStr2=JSON2.stringify(_jStr2)
alert("帶數組參數的JSON串:"+jStr);
alert("帶JSON串的JSON串:"+jStr1);
alert("帶JSON數組的JSON串:"+jStr2);
alert("未被轉化的JSON對象:"+_jStr1);
</script>