詳解幾種JSON建構(gòu)的結(jié)構(gòu)進(jìn)行說(shuō)明
JSON建構(gòu)基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個(gè)子集。JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類(lèi)似于C語(yǔ)言家族的習(xí)慣,這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。
JSON建構(gòu)于兩種結(jié)構(gòu):
“名稱(chēng)/值”對(duì)的集合(A collection of name/value pairs)。不同的語(yǔ)言中,它被理解為對(duì)象(object),紀(jì)錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組 (associative array)。值的有序列表(An ordered list of values)。在大部分語(yǔ)言中,它被理解為數(shù)組(array)。
PHP的serialize是將變量序列化,返回一個(gè)具有變量類(lèi)型和結(jié)構(gòu)的字符串表達(dá)式,說(shuō)起來(lái)兩者都是以一種字符串的方式來(lái)體現(xiàn)一種數(shù)據(jù)結(jié)構(gòu),那它們之間有什么區(qū)別呢。Customers 表的數(shù)據(jù)放在名為 "Customers" 的 DataTable 中。來(lái)自 Orders 表的數(shù)據(jù)放在名為 "Customers1" 的 DataTable 中。#t#
填充完 DataSet 之后,可以很容易地把 "Customers1" 表的 JSON建構(gòu)改為 "Orders"。但是,后面的填充會(huì)導(dǎo)致 "Customers" 表被重新填充,而 "Orders" 表會(huì)被忽略,并創(chuàng)建另外一個(gè) "Customers1" 表。為了對(duì)這種情況作出補(bǔ)救,創(chuàng)建一個(gè) DataTableMapping,把 "Customers1" 映射到 "Orders",并為其他后面的表創(chuàng)建其他的表映射。例如:
- var test = {"Name":"Peter","Age":20};
- document.write(test.Name + ": " + test.Age);
- var test = {"User":{"Name":"Peter","Age":20},"Company":"FORD"};
- document.write(test.User.Name + ": " + test.Company);
- var test = [
- {"User":{"Name":"Peter","Age":20},"Company":"FORD"},
- {"User":{"Name":"Li Ming","Age":20},"Company":"Benz"}
- ];document.write(test[1].User.Name + ": " + test[1].Company);
- $arr = array
- (
- 'Peter'=> array
- (
- 'Country'=>'USA',
- 'Age'=>20
- ),
- 'Li Ming'=> array
- (
- 'Country'=>'CHINA',
- 'Age'=>21
- )
- );
- $serializeserialize_var = serialize($arr);
- echo $serialize_var;