麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

json_encode和serialize(二)

2019-11-14 09:20:35
字體:
來源:轉載
供稿:網友

4 json和js的序列化        

      緊接之前的第一篇博客,按照鏈式的學習方法,我自然的想到了php有序列化,那么,js的序列化呢。由此查閱資料得出以下自己的幾個總結和理解:

 (1)首先,理解json,關于json。最重要的是要明白,json是一種數據格式,不是一種編程語言,雖然具有相同的語法形式,但是json并不從屬于js。并且不是只有js才能使用json-》所以我明白了。為什么php也會有json_encode函數,因為對于php來說,這個函數是實現json數據格式的方法,而對于js來說JSON.stringify是屬于js實現json格式的方法,當然,這兩種語言之間的json格式是一樣的,但是需要注意,json_encode會 將關聯數組(包括含有顯式的數值鍵名的數值型數組)和對象轉換為json對象字符串,數值型數組則會轉換為json數組。

$a=array(1,2,3,'fd');var_dump((json_encode($a)),"a");輸出

string(12) "[1,2,3,"fd"]" string(1) "a" 而

$a=array(1=>1,2,3,'fd');var_dump((json_encode($a)),"a");輸出

string(28) "{"1":1,"2":2,"3":3,"4":"fd"}" string(1) "a" (2)json可以表示簡單值,對象,數組三種數組類型,但是需要注意的是,json字符串必須一定要用雙引號!!!!!

       與js對象字面對比,json對象有兩個地方不一樣,首先沒有聲明變量,其次沒有末尾的分號,還有,對象的屬性(屬性哦哦)必須加雙引號!!!!!!!!!!

   js對象

var person={  

    name;"wang",

   age: 20

}  ;

json對象

{

  "name":"wang",

   "age":29

}

總而言之是,表示簡單json字符串的時候,需要雙引號,json對象屬性的時候也需要雙引號;

 js數組

var value=[25,"hi"];

json數組

[25,"hi"]

(3)解析與序列化

 json對象有兩個方法 stringify()和parse()分別用于把js對象序列化為json字符串和把json字符串解析為原生的js值。

JSON.stringify()可以將js對象(對象哦)序列化為json字符串,這個函數有三個參數,第一個參數接收js對象,第二個參數可以是一個數組(表示需要轉換的屬性),或者一個函數,對轉換的時候進行屬性加工,第三個參數是一個選項,表示是否在json字符串中保留縮進(具體代碼可以百度)。-》類似于php__sleep魔術方法對于serialzie串行化的時候進行過濾或者加工一樣、

一個細節需要注意,進行序列化的時候,當值為undefined的任何屬性都會被跳過。

<script type="text/javascript">var person={		name:undefined,		age:23};var x=JSON.stringify(person);document.write(x);</script>輸出為

{"age":23}

    同時還存在一個toJSON方法,可以為任何對象添加,返回其自身的json數據格式,即可以按照自己的需要返回一個自定義的字符串,這個時候調用JSON.stringify ()的時候會對返回的這個字符串進行操作。

<script type="text/Javascript">var person={		name:"test",		age:23,		toJSON:function(){			return this.name;		}};var x=JSON.stringify(person);document.write(x);</script>輸出"test"

   所以這個順序是,先走toJSON方法,然后再走JOSN.stringify(),如果沒有toJOSN()則直接對對象序列化,如果存在則對返回的數據序列化。

   JSON.parse()方法可以接收兩個參數,第一個參數是需要解析的還原的json字符串,第二個參數可以為一個函數,這個函數有兩個參數分別對應鍵和值,從而可以實現對json字符串還原為對象時候的再操作。類似于php中unserialize的時候調用的__wakeUp魔術方法一樣。

     至此,由于看書看到php序列化而衍生想到的知識和學習的過程就到這結束了。今后的學習過程中還是需要按照這樣的思維去學習,鏈式學習,每天積累,總有一天會成為大牛!加油!

    由php的序列化而想到了js的序列化,雖然做了些總結,但是還有些疑問,感覺還可以更細致,對json更加詳細的思考和總結留待下次再進行更深刻細致的挖掘,那個時候再從頭回來再總結一次json,先留一個坑。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费在线观看成年人视频 | 深夜福利视频免费观看 | 狠狠操操 | 日韩视频一区二区在线观看 | 国产精品久久久久久久久久大牛 | 国产一区二区三区在线免费观看 | 久草在线资源福利站 | 国产在线精品区 | 久久免费激情视频 | 国产一区二区国产 | 欧美18—19sex性hd按摩 | 中文字幕 亚洲一区 | 国产九色在线观看 | 欧美一级黄色片免费观看 | 中文字幕在线一 | 国产在线色 | 亚洲精中文字幕二区三区 | 在线播放免费人成毛片乱码 | 亚洲天堂成人在线观看 | 中国嫩模一级毛片 | 一级毛片真人免费播放视频 | 欧美精品18 | 国产九九九九 | 国产一级免费视频 | 亚洲自拍第一 | 亚洲成人福利电影 | 中文字幕在线观看免费视频 | 久久久久久久久国产精品 | 成人wxx视频免费 | 中文字幕电影免费播放 | 成人做爰高潮片免费视频韩国 | 九九热精彩视频 | 九九精品在线播放 | 久久蜜臀一区二区三区av | av在线播放亚洲 | 国产精品91在线 | 红杏网站永久免费视频入口 | 可以看毛片的网址 | 911精品影院在线观看 | 国产1区2区在线观看 | 一级空姐毛片 |