代码之家  ›  专栏  ›  技术社区  ›  reach4thelasers

将列表作为查询字符串传递-我应该使用JSON吗

  •  0
  • reach4thelasers  · 技术社区  · 16 年前

    我想通过QueryString将标准传递给寻呼机。身高和年龄很容易,因为这些都是范围,我会使用

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

    然而,其他标准,如体型和种族组织是外国关键价值的列表,例如:

    Ethnitity:2,3,5
    

    将这些作为查询字符串传递的最佳方式是什么?我是否应该将其转换为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 回复  |  直到 16 年前
        1
  •  2
  •   Pavel Chuchuva grapeot    16 年前

    在我看来,使用逗号分隔的值是最实用的方法。您可以使用此代码拆分值:

    if (!string.IsNullOrEmpty(Request.QueryString["bodytypes"]))
    {
       string[] rgs = Request.QueryString["bodytypes"].Split(new char[] { ',' });
    }
    
        2
  •  0
  •   o.k.w    16 年前

    虽然查询字符串更容易被“黑客”攻击,但两者都会起作用。但是,如果您能很好地保护它不受恶意/意外值的影响,我认为这很好。