1. 程式人生 > 其它 >golang 陣列轉換成json_搞懂JSON.stringify方法的千奇百怪

golang 陣列轉換成json_搞懂JSON.stringify方法的千奇百怪

技術標籤:golang 陣列轉換成json

點選右上方紅色按鈕關注“小鄭搞碼事”,每天都能學到知識,搞懂一個問題!

說到JSON.stringify方法,做前端的,可能是無人不知,無人不曉。其作用也是非常好理解,將JS物件或者陣列系列化成一個JSON字串。通常在向伺服器傳送資料時用,說到系列化也就自然想到反系列化,它的兄弟方法JSON.parse。但今天只講JSON.stringify。在平時認識的基礎之上,更深入來理解這個方法。知道它可以這麼用其實也就足以。

【語法格式】

JSON.stringify(value, replacer, space)

value:物件/陣列(必選)

replacer:陣列/方法(可選)

space:分隔符(可選)

這個語法應該也清楚了,下面我要做的就是告訴大家每一種取值情況的作用。

特別說明:下面一參(第一個引數),二參(第二個引數)。

一. 物件/陣列(一參)

685a6a0f1565aedb18fd342d5b2d911e.png

不管是陣列還是物件,都會將其轉換成字串,可以使用alert驗證其正確性。上面程式碼輸出結果一目瞭然。

二. 陣列(一參)+function(二參)

21c51d7a48b165b90258f36bb2549e70.png

在FUN裡能夠拿到的陣列的value值。這裡我將value值toString後在輸出大寫的字串形式輸出。結果如上所示,如果不這樣做, 輸出就是字串:'['xz1','xz2']'。

三. 陣列(一參)+陣列(二參)

711ddd7dd4ef53afdeda05c5d3a908fc.png

上面講了當第一個引數是陣列,第二個引數是函式的情況,現在看一下,當第二個引數也是陣列的情況,會發生什麼。從上面程式碼輸出結果上看出,這種情況,第二個引數被忽略了。直接將第一個引數陣列系列化成字串。

四. 對數(一參)+陣列(二參)

60f381e0c8159da47a1953fca65f76ed.png

現在我們要分析的是第一個引數是物件,第二個引數是陣列的情況,仔細看上面這段程式碼及輸出結果。

第二個引數陣列的value值name,age在第一個引數物件中都存在。

可以得到結論是:如果此時第二個引數的值在第一個存在,那麼以第二個引數的值做KEY。第一個引數的值為value進行表示,如果不存在,就忽略。

稍微注意:上面的我們輸出的結果都是以一行字串形式出現的。

下面我們進一步看一下,當加上第三個引數時的輸出結果:

1. 物件(一參)+陣列(二參)+數字(三參)

JSON.stringify(testobj, testArr, 20)
e738d2e5fc5b1a2f8d8203fc6be239a3.png

2. 物件(一參)+陣列(二參)+轉義字元(三參)

JSON.stringify(testobj, testArr, '')
8173bb288dffb43b005c29faef8abb55.png

3. 物件(一參)+陣列(二參)+任意字串(三參)

JSON.stringify(testobj, testArr, 'yes')
664bb4411d1294a6bc5441b0dac06371.png

本篇到此結束,篇幅不長,內容不難,估計只要花幾分鐘足夠看完,能讓大家又加深對JSON.stringify方法的認識就是本篇的目的。