[英]Passing complex data structures via GET parameters?
我試圖將列表和映射作為GET參數傳遞,並且我想知道是否可以使用特定的約定(最好是庫)。 具體來說,我想傳遞列表和地圖。
鑒於我們正確地對分隔符(在本例中為逗號)進行URL編碼,列表相對容易一些:
/圖像/小貓?furColors =棕色,黑色
地圖更加復雜。 我看過這樣的東西:
/圖像/小貓?性質[furColors] =棕色,黑色及性質[eyeColors] =藍色
我也看過這樣的東西:
?/圖像/小貓屬性= furColors%3Dbrown,黑色; eyeColors%3Dblue;
我可以遵循的一個好的標准嗎? 另外,我碰巧正在使用Java和Spring(出於無法控制的原因),並且我希望能夠使用一個庫來處理該庫,最好是使用Spring可以解析其字符串的庫。
您可以傳遞JSON數組或對象。 為什么不使用現有的,完善的標准,而不是發明自己的標准?
也許protobuf會更合適。
我寧願做任何可以發展和維護自己的事情。 我很懶。
注意GET請求字符串的1024個字節限制。 您只能如此復雜。
從google Commerce搜索api提取頁面,特別是限制部分,他們基本上通過了限制圖,例如
&restrictBy=key1=val1,key2=val2,key3=val3
這與您的選擇非常相似。 我不了解任何已發布的最佳實踐或標准,甚至不敢相信Google的認可與以前一樣重要,但至少已經完成並投入生產。
至於一個庫,可以使用一些時間合適的 String.split,或者您可以查看Guava的MapSplitter 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.