2009-11-29 49 views
0

可以說我有一個在線交友網站,用戶可以根據各種標準篩選用戶列表,高度,年齡,體型,民族起源....作爲一個QueryString傳遞列表 - 我應該使用JSON

我想通過QueryString將條件傳遞給尋呼機。身高和年齡都容易因爲這些範圍內,我會用

MinHeight=3&MaxHeight=12&MinAge=21&MaxAge=30 

然而,其他標準一樣體形和民族orgins是ForeignKey的值列表,例如:

Ethnitity:2,3,5 

什麼是傳遞的最佳方式這些作爲QueryString?我應該將它轉換爲Json字符串,例如:

www.site.com?filterjson={\"minage\":0,\"maxage\":0,\"minheight\":0,\"maxheight\":0,\"bodytypelist\":[1,2,3],"ethnicitylist\":[2,3,4],\"eyecolorlist\":[],\"haircolorlist\":[],\"orientationlist\":[]} 

或者這是無效的/過度殺傷/太複雜?

也許是這樣的:

MinHeight=3&MaxHeight=12&bodytypes=1,2,3& 

,並通過分割 '' 解析列表值?????

我不知道所有這些想法的起伏。那麼如何傳遞查詢字符串中的值列表?

回答

2

在我看來,使用逗號分隔值是最實用的方法。您可以使用此代碼,以分割值:

if (!string.IsNullOrEmpty(Request.QueryString["bodytypes"])) 
{ 
    string[] rgs = Request.QueryString["bodytypes"].Split(new char[] { ',' }); 
} 
+0

我傾向於同意,儘管逗號變成somethig像代表一個逗號這www.site.com/search?bodytype=?=2%2C3%2C4%2C 。不好看,但我想這沒關係。但我有點擔心逗號在查詢字符串中不是一個有效的字符。不知道這是否有問題。 – reach4thelasers 2009-11-30 11:03:49

+0

你可以用短劃線替換逗號(bodytype = 1-2-3)。 – 2009-11-30 21:44:34

0

兩者都可以工作,但查詢字符串更容易被「黑客入侵」。但是,如果你有足夠的保護以防止惡意/意外的價值,我說這很好。

通過查詢字符串消費數據比從JSON更直接。

相關問題