改造 2 @FieldMap 始终为空

Retrofit 2 @FieldMap always empty

我手动制作了地图

private Map<String, Object> getProducts(){
    List<CartContentDMC> products = new Select().from(Data.class).execute();
    Map<String, Object> productMap = new LinkedHashMap<>();
    for(int j = 0; j < products.size(); j++){
        productMap.put("products[" + Integer.toString(j) + "][code]", Integer.toString(products.get(j).id));
        productMap.put("products[" + Integer.toString(j) + "][amount]", products.get(j).amount);
        productMap.put("products[" + Integer.toString(j) + "][price]", Integer.toString(products.get(j).price));
    }
    return productMap;
}

,但在我的要求中:

@FormUrlEncoded
@POST("orders.json/createOrder?")
Call<Response> sendOrder(@Query("client_id") String id, @Query("access_token") String access_token,
                     @Query("order_id") int order_id, @Query("buyer_name") String buyer_name,
                     @Query("buyer_phone") String buyer_phone, @Query("buyer_address") String buyer_address,
                     @FieldMap Map<String, Object> products, @Query("delivery_price") int delivery_price,
                     @Query("website") String website);

FieldMap 在请求中总是空的。

我做错了什么?

在这种情况下最好使用@QueryMap 而不是@FieldMap。