Параметр, переданный клиенту, не совпадает с параметром на сервере - PullRequest
0 голосов
/ 18 июня 2020

Я передаю параметр, который является этим вектором:

[{:description "Regent Thai, Church Street, San Francisco, CA, USA", :id "254f506a2fddd4fecbbbd750e0e91d7871218065", :matched_substrings [{:length 3, :offset 0}], :place_id "ChIJi3wlq2l-j4ARq5Rg0kuektg", :reference "ChIJi3wlq2l-j4ARq5Rg0kuektg", :structured_formatting {:main_text "Regent Thai", :main_text_matched_substrings [{:length 3, :offset 0}], :secondary_text "Church Street, San Francisco, CA, USA"}, :terms [{:offset 0, :value "Regent Thai"} {:offset 13, :value "Church Street"} {:offset 28, :value "San Francisco"} {:offset 43, :value "CA"} {:offset 47, :value "USA"}], :types ["restaurant" "food" "point_of_interest" "establishment"]} {:description "Ebisu Restaurant, 9th Avenue, San Francisco, CA, USA", :id "55ed22b098f6b1b2f1b1d3d1d03d36bc3505d6b3", :matched_substrings [{:length 2, :offset 0}], :place_id "ChIJ93MU4FyHhYARNsN1cMElpgo", :reference "ChIJ93MU4FyHhYARNsN1cMElpgo", :structured_formatting {:main_text "Ebisu Restaurant", :main_text_matched_substrings [{:length 2, :offset 0}], :secondary_text "9th Avenue, San Francisco, CA, USA"}, :terms [{:offset 0, :value "Ebisu Restaurant"} {:offset 18, :value "9th Avenue"} {:offset 30, :value "San Francisco"} {:offset 45, :value "CA"} {:offset 49, :value "USA"}], :types ["restaurant" "food" "point_of_interest" "establishment"]}]

, но когда я получаю тот же параметр на сервере, вектор теперь стал следующим:

{:terms {:offset ["0" "13" "28" "43" "47" "0" "18" "30" "45" "49"], :value ["Regent Thai" "Church Street" "San Francisco" "CA" "USA" "Ebisu Restaurant" "9th Avenue" "San Francisco" "CA" "USA"]}, :types ["restaurant" "food" "point_of_interest" "establishment" "restaurant" "food" "point_of_interest" "establishment"], :matched_substrings {:length ["3" "2"], :offset ["0" "0"]}, :structured_formatting {:main_text ["Regent Thai" "Ebisu Restaurant"], :main_text_matched_substrings {:offset ["0" "0"], :length ["3" "2"]}, :secondary_text ["Church Street, San Francisco, CA, USA" "9th Avenue, San Francisco, CA, USA"]}, :place_id ["ChIJi3wlq2l-j4ARq5Rg0kuektg" "ChIJ93MU4FyHhYARNsN1cMElpgo"], :id ["254f506a2fddd4fecbbbd750e0e91d7871218065" "55ed22b098f6b1b2f1b1d3d1d03d36bc3505d6b3"], :description ["Regent Thai, Church Street, San Francisco, CA, USA" "Ebisu Restaurant, 9th Avenue, San Francisco, CA, USA"], :reference ["ChIJi3wlq2l-j4ARq5Rg0kuektg" "ChIJ93MU4FyHhYARNsN1cMElpgo"]}

Почему это так и что я делаю не так?

Они должны быть одинаковыми, верно?

Я использую http-xhrio re-frame для запроса Ajax:

{:method :post
   :uri "/foobar"
   :params {:my-vec that-vector}
   :on-success [:foo]
   :on-failure [:bar]
   :response-format (edn/edn-response-format)}

и на сервере при получении следующего вида:

(:my-vec (:params req))

печать этого ^ дает карту, начинающуюся с: terms ..., тогда как она должна давать вектор, начинающийся с [{ : description ...

вместо того, чтобы иметь две карты с одинаковыми ключами в векторе, у меня есть одна карта, и все значения двух карт объединены в одну карту в векторах.

...