JSON建構基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣,這些特性使JSON成為理想的數據交換語言。
JSON建構於兩種結構:
“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。
PHP的serialize是將變量序列化,返回一個具有變量類型和結構的字符串表達式,說起來兩者都是以一種字符串的方式來體現一種數據結構,那它們之間有什麼區別呢。Customers 表的數據放在名為 "Customers" 的 DataTable 中。來自 Orders 表的數據放在名為 "Customers1" 的 DataTable 中。
填充完 DataSet 之後,可以很容易地把 "Customers1" 表的 JSON建構改為 "Orders"。但是,後面的填充會導致 "Customers" 表被重新填充,而 "Orders" 表會被忽略,並創建另外一個 "Customers1" 表。為了對這種情況作出補救,創建一個 DataTableMapping,把 "Customers1" 映射到 "Orders",並為其他後面的表創建其他的表映射。例如:
- 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;