golang 陣列轉換成json_搞懂JSON.stringify方法的千奇百怪
技術標籤:golang 陣列轉換成json
點選右上方紅色按鈕關注“小鄭搞碼事”,每天都能學到知識,搞懂一個問題!
說到JSON.stringify方法,做前端的,可能是無人不知,無人不曉。其作用也是非常好理解,將JS物件或者陣列系列化成一個JSON字串。通常在向伺服器傳送資料時用,說到系列化也就自然想到反系列化,它的兄弟方法JSON.parse。但今天只講JSON.stringify。在平時認識的基礎之上,更深入來理解這個方法。知道它可以這麼用其實也就足以。
【語法格式】
JSON.stringify(value, replacer, space)
value:物件/陣列(必選)
replacer:陣列/方法(可選)
space:分隔符(可選)
這個語法應該也清楚了,下面我要做的就是告訴大家每一種取值情況的作用。
特別說明:下面一參(第一個引數),二參(第二個引數)。
一. 物件/陣列(一參)
不管是陣列還是物件,都會將其轉換成字串,可以使用alert驗證其正確性。上面程式碼輸出結果一目瞭然。
二. 陣列(一參)+function(二參)
在FUN裡能夠拿到的陣列的value值。這裡我將value值toString後在輸出大寫的字串形式輸出。結果如上所示,如果不這樣做, 輸出就是字串:'['xz1','xz2']'。
三. 陣列(一參)+陣列(二參)
上面講了當第一個引數是陣列,第二個引數是函式的情況,現在看一下,當第二個引數也是陣列的情況,會發生什麼。從上面程式碼輸出結果上看出,這種情況,第二個引數被忽略了。直接將第一個引數陣列系列化成字串。
四. 對數(一參)+陣列(二參)
現在我們要分析的是第一個引數是物件,第二個引數是陣列的情況,仔細看上面這段程式碼及輸出結果。
第二個引數陣列的value值name,age在第一個引數物件中都存在。
可以得到結論是:如果此時第二個引數的值在第一個存在,那麼以第二個引數的值做KEY。第一個引數的值為value進行表示,如果不存在,就忽略。
稍微注意:上面的我們輸出的結果都是以一行字串形式出現的。
下面我們進一步看一下,當加上第三個引數時的輸出結果:
1. 物件(一參)+陣列(二參)+數字(三參)
JSON.stringify(testobj, testArr, 20)
2. 物件(一參)+陣列(二參)+轉義字元(三參)
JSON.stringify(testobj, testArr, '')
3. 物件(一參)+陣列(二參)+任意字串(三參)
JSON.stringify(testobj, testArr, 'yes')
本篇到此結束,篇幅不長,內容不難,估計只要花幾分鐘足夠看完,能讓大家又加深對JSON.stringify方法的認識就是本篇的目的。