首页 > 代码库 > 多参数之间,建议用逗号做分隔符
多参数之间,建议用逗号做分隔符
问题:
参数如果是List,应该用什么分隔符来连接呢?例如:
1、GET方法,拥有参数key1,它的对应值是一个list,值为value1,value2,用什么分隔符连接这两个value值
1、GET方法,拥有参数key1,它的对应值是一个list,值为value1,value2,用什么分隔符连接这两个value值
2、配置文件中,value值也是一个list,又该怎么拼接?
3、将list保存为db的一个字段,用什么分隔符
总结:采用逗号做分隔符。也就是配置文件中,是key=value,value2;GET方法中,url为http://host/key=value1,value2&otherkey=value3;db字段值key=value1,value2
具体原因如下:
1、先讨论第二个情况,如果是配置文件,建议用“,"分隔符
apache的commons-configuration包,可以帮助我们读取配置文件。它本身包含一个getList方法,这个方法可以将value值转换为一个list。value的分隔符,默认是“,",例如配置文件内容为name=harryli,ponyma,通过getList("names"),能够直接返回一个list类型,这样更方便我们做后续操作。apache使用“,"做分隔符,肯定是经过推敲的,而且,如果遵循这个规范,我们也能直接使用getList方法。
2、再讨论第一个情况,可以有"+",";",","三个候选:
"+"是url中的特殊字符,传参如果是加号,会被转成空格,因此,不能用+号
";"号,在W3C的规范中,认为“;"可以和“&”一样,用于参数之间的连接符,例如http://host/?x=1&y=2等同于http://host/?x=1;y=2。既然它拥有这个含义,那我们就不能用“;"作为参数内容分隔符
”,"号没有分号的顾虑,同时,考虑到配置文件也建议用","做分隔符,因此对于GET方法,也同样建议,用","(逗号)作为参数内容的分隔符
3、接着讨论第三个情况,对于数据库来说,也是保存为逗号好,因为mysql有一个方法FIND_IN_SET,可以对逗号拼接的str进行搜索,例如,字段值str_list为‘1,2,3’,那么FIND_IN_SET(‘2‘,str_list)就能匹配到这条数据,因为字段‘1,2,3‘通过逗号分割后,是一个list,有三个值,其中包含了2这个值
综上所述,一般采用逗号作为分隔符
多参数之间,建议用逗号做分隔符
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。