在Web開發(fā)中,我們經(jīng)常需要傳遞一些參數(shù),這些參數(shù)可以通過URL中的query參數(shù)來表示。一般來說,query參數(shù)的格式是key=value,多個參數(shù)之間使用&符號分隔。
有時候,我們需要將這些參數(shù)轉(zhuǎn)換成JSON格式,方便在代碼中進行處理。下面就是一個將query參數(shù)轉(zhuǎn)換為JSON格式的示例:
function parseQueryString(queryString) { var query = {}; var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&'); for (var i = 0; i< pairs.length; i++) { var pair = pairs[i].split('='); query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || ''); } return query; } var url = 'http://example.com/?foo=bar&hello=world'; var queryString = url.substring(url.indexOf('?') + 1); var json = JSON.stringify(parseQueryString(queryString)); console.log(json);
上述代碼中,首先定義了一個叫做parseQueryString的函數(shù),用于將query參數(shù)轉(zhuǎn)換成JSON格式。該函數(shù)的實現(xiàn)方式是首先將query參數(shù)按照&符號進行分隔,然后再將每一個key=value對拆分成key和value,并將其插入到一個對象中。需要注意的是,這種方式對于key或value中包含&或=符號的情況并不適用。
接下來,我們定義了一個示例的URL,其中包含了兩個參數(shù):foo=bar和hello=world。需要注意的是,在實際的Web開發(fā)中,原始URL中可能會包含其他的參數(shù)或者路徑等信息,我們需要使用substring函數(shù)將其從?處進行截取。
最后,我們調(diào)用了JSON.stringify函數(shù),將上述的parseQueryString函數(shù)生成的JSON對象轉(zhuǎn)換成了字符串,并輸出到了控制臺中。