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 以及...