深度解讀JSON形式的不同結(jié)構(gòu)說明
這兩種方式都可以效果是相同的,都是返回的javascript的對象或數(shù)組。你現(xiàn)在就可以在客戶端的javascript中使用這個(gè)對象或數(shù)組了 ,那么就需要將包含中文的內(nèi)容使用iconv或者mb轉(zhuǎn)為UTF-8再進(jìn)行json_encode,上面輸出結(jié)果如下
JSON建構(gòu)于兩種結(jié)構(gòu):
1.“名稱/值”對的集合。不同的語言中,它被理解為對象(object),紀(jì)錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hashtable),有鍵列表(keyedlist),或者關(guān)聯(lián)數(shù)組(associativearray)。
2.值的有序列表。在大部分語言中,它被理解為數(shù)組(array)。這些都是常見的數(shù)據(jù)結(jié)構(gòu)。JSON形式事實(shí)上大部分現(xiàn)代計(jì)算機(jī)語言都以某種形式支持它們。這使得一種數(shù)據(jù)格式在同樣基于這些結(jié)構(gòu)的編程語言之間交換成為可能。
JSON具有以下這些形式:
1.對象是一個(gè)無序的“‘名稱/值’對”集合。一個(gè)對象以“{”(左括號)開始,“}”(右括號)結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”(冒號);“‘JSON形式名稱/值’對”之間使用“,”(逗號)分隔。例:{"name":"張三","age":20,"birthday":"1982-07-20"}
這是對象在json中的表示形式.即{"key1":"value1","key2":"value2",...}
2.數(shù)組是值(value)的有序集合。一個(gè)數(shù)組以“[”(左中括號)開始,“]”(右中括號)結(jié)束。值之間使用“,”(逗號)分隔。例:["張三","李四","王五"]這是數(shù)組在json中的表示形式.即[value1,value2,value3,....]#t#
3.值(value)可以是雙引號括起來的字符串(string)、數(shù)值(number)、true、false、null、對象(object)或者數(shù)組(array)。這些結(jié)構(gòu)可以嵌套。
4.字符串(string)是由雙引號包圍的任意數(shù)量Unicode字符的集合,使用反斜線轉(zhuǎn)義。一個(gè)字符(character)即一個(gè)單獨(dú)的字符串(characterstring)。字符串(string)與C或者Java的字符串非常相似。
5.數(shù)值(number)也與C或者Java的數(shù)值非常相似。除去未曾使用的八進(jìn)制與十六進(jìn)制格式。JSON形式除去一些編碼細(xì)節(jié)。注:你只要記住前兩種形式就可以了。
注意:key一定要用引號,而value如果是字符串,也一定要用引號引起來。切記,有的系統(tǒng)中,只當(dāng)雙引號是有效的,而不認(rèn)單引號。所以建議用雙引號。