开发者

Passing Lists as a QueryString - should I use JSON

开发者 https://www.devze.com 2022-12-13 06:00 出处:网络
Lets say I\'ve got an online dating site, users can filter the user list based on various criteria,Height, Age, BodyType, Ethnic Origin....

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

精彩评论

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