qs庫使用指南

2021-10-01 09:45:23 字數 1722 閱讀 4727

qs是乙個流行的查詢引數序列化和解析庫。可以將乙個普通的object序列化成乙個查詢字串,或者反過來將乙個查詢字串解析成乙個object,而且支援複雜的巢狀。它上手很容易:

qs.parse('x=1') // 

qs.stringify() // x%5b0%5d=1

qs的兩個方法都接受乙個可選的第二引數,可以讓我們對結果進行配置,個人覺得比較有用的有以下幾個:

ignorequeryprefix和addqueryprefix

ignorequeryprefix這個引數可以自動幫我們過濾掉location.search前面的❓,然後再解析,addqueryprefix設為true可以在序列化的時候給我們加上?

// 解析

qs.parse('?x=1') //

qs.parse('?x=1', ) //

// 序列化

qs.stringify() // x=1

qs.parse(, ) // ?x=1

陣列解析和序列化

陣列序列化有幾種方式:indices,brackets,repeat,comma,用來控制字串的生成格式。來看下面的例子:

qs.stringify(, )

// 'a[0]=b&a[1]=c'

qs.stringify(, )

// 'a=b&a=c'

qs.stringify(, )

// 'a=b&a=c'

qs.stringify(, )

// 'a=b,c'

上面的四種方式,序列化得到的結果越來越精簡,但是當面對巢狀陣列時,卻會導致不同程度的資訊丟失,而且丟失的越來越嚴重。以四種方式對stringify 再 parse為例:

qs.parse(qs.stringify(, )) // 

qs.parse(qs.stringify(, )) //

qs.parse(qs.stringify(, )) //

qs.parse(qs.stringify(, )) //

所以當資料裡有巢狀時最好使用indices模式,好在這也是預設模式。

delimiter

delimiter可以控制將哪種字元作為分隔符,由於cookie的格式是使用;來分隔,乙個有用的例子是用來解析cookie:

document.cookie // "_ga=ga1.2.806176131.1570244607; _jsuid=1335121594; _gid=ga1.2.1453554609.1575990858"

qs.parse(document.cookie, )

正如我們在第乙個例子看到的那樣,我們把乙個數字序列化再還原,得到的並不是乙個數字,而是乙個字串:

qs.parse(qs.stringify()) //
如果希望解析出來依舊是數字,可以參考這個issue,就是寫乙個自定義decoder:

qs.parse('x[0]=1', 

return str

}})

本文完

LJS控制項庫 Dialog使用指南

dialog控制項效果圖 注意 dialog為ljs中的乙個控制項,使用前請閱讀ljs使用指南 dialog的配置檔案實際上是乙個xml檔案,該配置檔案用於說明將要建立的dialog的標題,樣式,內容等,配置檔案說明如下圖所示 配置檔案中根節點 屬性說明 屬性 說明 width 寬度 height ...

Ubuntu apt 使用指南

起初gnu linux系統中只有.tar.gz。使用者必須自己編譯他們想使用的每乙個程式。在debian出現之後,人們認為有必要在系統中新增 一種機制用來管理安裝在計算機上的軟體包。人們將這套系統稱為dpkg。至此著名的 package 首次在gnu linux上出現。不久之後紅帽子也 開始著手建立...

CImageList使用指南

1.綜述 在mfc 中cimagelist 類封裝了 影象列表控制項的功能,影象列表是乙個具有相同大小的 影象 可以是不同 型別 的集合,其主要用於 應用程式中大規模 圖示的儲存。該控制項是不可 見的,通常與其它如 clistbox ccombobox ccomboboxex ctabctrl 以及...