HTTP GET 查询字符串是键/值对的有序序列:
?spam=eggs&spam=ham&foo=bar
是,具有一定的语义,相当于下面的字典:
{'spam': ['eggs', 'ham'], 'foo': bar}
这恰好适用于被请求的页面的布尔属性:
?expand=1&expand=2&highlight=7&highlight=9
{'expand': [1, 2], 'highlight': [7, 9]}
如果您想停止扩展 id 为 2 的元素,只需将其从expand
值中弹出并再次对查询字符串进行 urlencode。但是,如果您有一个更模态的属性(有 3 种以上的选择),您真的想表示这样的结构:
{'highlight_mode': {7: 'blue', 9: 'yellow'}}
其中对应 id 键的值是已知枚举的一部分。将其编码为查询字符串的最佳方法是什么?我正在考虑使用这样的二元组序列:
?highlight_mode=(7,blue)&highlight_mode=(9,yellow)
编辑:知道与约定相关的任何名称也很好。我知道可能没有,但是很高兴能够使用名称而不是示例来谈论特定的事情。谢谢!