开发者

Passing Lists as a QueryString - should I use JSON

Lets say I've got an online dating site, users can filter the user list based on various criteria, Height, Age, BodyType, Ethnic Origin....

I want to pass the criteria to the pager, via QueryString. Height and Age are easy as these are ranges, and I would use

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

However other Criteria like BodyType and Ethnic orgins are Lists of ForeignKey values e.g:

Ethnitity:2,3,5

What is the best way to pass these as a QueryString? Should I convert it to a Json string eg:

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

Or is this not-valid/overkill/too complex?

Maybe something like thi开发者_JAVA技巧s:

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

and parse the list values by splitting the ','?????

I don't know the ups and downs of all these ideas. So how would you pass a list of values in a querystring?


Using comma-separated values is the most pragmatic approach in my opinion. You can use this code to split values:

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


Both will work, though querystring is much easier to be 'hacked'. However if you have it well protected from malicious/unexpected values, I say it's fine.

Consuming data via querystring is relatively more straightforward than from JSON.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜