我正在尝试将列表和地图作为GET参数传递,我想知道是否有特定的约定(或者最好是库),我可以这样做。具体来说,我想传递列表和地图。
列表相对容易,因为我们对分隔符进行了正确的URL编码(在本例中为逗号):
/图像/小猫?furColors =棕色,黑色
地图更复杂。我见过这样的事情:
/图像/小猫性质[furColors] =棕色,黑色&安培;属性[eyeColors] =蓝色
我也看到过这样的事情:
/图像/小猫属性= furColors%3Dbrown,黑色;?eyeColors%3Dblue;
我可以遵循一个很好的标准吗?此外,我碰巧使用Java和Spring(出于我无法控制的原因),并且我希望能够使用库来处理这个问题,最好是Spring可以解析的字符串。
答案 0 :(得分:6)
您可以传递JSON数组或对象。为什么不使用现有的,完善的标准,而不是发明自己的标准?
或者protobuf或许更合适。
我宁愿做任何能够发展和保持自己的东西。我很懒。
注意GET请求字符串的1024字节限制。你只能这么复杂。
答案 1 :(得分:0)
从google commerce search api获取一个页面,特别是限制部分,它们基本上会传递限制图,例如
&restrictBy=key1=val1,key2=val2,key3=val3
这与您的选项非常相似。我不知道任何公布的最佳做法或标准,我甚至不相信谷歌的认可具有与以往相同的重要性,但至少它已经完成并正在生产中。
对于一个库,使用一些适时的String.split可以工作,或者你可以查看Guava的MapSplitter。