兩種JSON建構(gòu)的結(jié)構(gòu)說明解釋
對于JSON(JavaScript Object Notation)大家應(yīng)該不陌生,JSON建構(gòu)是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫。同時也易于機(jī)器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。
JSON建構(gòu)于兩種結(jié)構(gòu):
“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀(jì)錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組 (associative array)。 #t#
值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數(shù)組(array)。 PHP的serialize是將變量序列化,返回一個具有變量類型和結(jié)構(gòu)的字符串表達(dá)式,
說起來兩者都是以一種字符串的方式來體現(xiàn)一種數(shù)據(jù)結(jié)構(gòu),那它們之間有什么區(qū)別呢。
先從JSON說起,看一個簡單的實例:
- var test = {"Name":"Peter","Age":20};
- document.write(test.Name + ": " + test.Age);
顯示結(jié)果:
- $arr = array
- (
- 'Peter'=> array
- (
- 'Country'=>'USA',
- 'Age'=>20
- ),
- 'Li Ming'=> array
- (
- 'Country'=>'CHINA',
- 'Age'=>21
- )
- );
- $serializeserialize_var = serialize($arr);
- echo $serialize_var;
變量test中{"Name":"Peter","Age":20}為一個有2個元素的對象(感覺就像PHP的數(shù)組):Name為Peter,Age為20。當(dāng)然也可以變得復(fù)雜些。