我有嵌套的url參數傳遞給一個端點,我需要這些表示爲JsValue。我最初的假設是Play會以類似於Rails的方式解析它們,但參數似乎只能被&
和=
分開。例如:在播放QueryString解析
查詢參數:?test[testkey]=testvalue&test[newkey]=newvalue
實際:
Map( "test[testkey]" -> "testvalue" , "test[newkey]" -> "newvalue )
預計:
Map( "test" -> Map( "testkey" -> "testvalue" , "newkey" -> "newvalue" ) )
請注意,這裏的最終目標是能夠將其轉換成一個JsObject。
我已經開始自己寫這個了,但是簡單地從Rack上移植這個函數是非常不方便的,我覺得必須有一個快速的方法來獲得這個,我只是想念。
UPDATE
我試圖找到模仿Rails用到的解析(即與嵌套對象,列表等),一個通用的解決方案,而不是一個級別深度的對象。
我也不認爲這將適用於嵌套數組,如'array [] = 6&array [] = 7',或嵌套對象,如'test [a] [b] = 7'。還是我不正確? –
你是對的。但是,它將適用於multimap;所以map [key] = 6&map [key] = 7會解析成列表。對於其他情況,你將不得不使用正則表達式。 – mantithetical