0
Retrofit2内側のjsonを持つマップjsonボディを使用してPOSTをどのようにしますか。ボディにマップを追加する方法 - 内側のjsonオブジェクトを持つマップを投稿する方法
{
"id_invoice": 1234,
"action": "viewed",
"data": {
"id_object": 88,
"id_store": 43,
"type": "payment"
}
}
「データ」JSONオブジェクトが内部JSONを持つことに注目してください。どのように私はマップにこのすべてを置くことができ、私は、次のサービスのエンドポイントを使用して改造することを送ることができます。
public interface Api {
@NonNull
@POST("cart/payment")
@Headers({"Content-Type:application/json"})
Observable<ResponseBody> postPaymentEvent(@Body Map<String, Object> body);
}
私は次のことを試してみました:
Map<String, Object> map = new HashMap<>();
JSONObject json = new JSONObject();
json.put("id_object", 88);
json.put("id_store", 43);
json.put("type", "payment");
map.put("action", "view");
map.put("id_invoice", 1234);
map.put("data", json); //this is wrong. it creates the following response with a nameValuePairs field, which is not what i want:
をボディ:
{
"action": "page_view",
"id_invoice": "1234",
"data": {
"nameValuePairs": {
"id_object": 88,
"id_store": 43,
"type": "view"
}
}
}
を。 – j2emanue
ハッシュマップに他のものを追加していますか? –
いいえ、私はちょうどマップにそのjsonを置く必要があります。明らかに私はクラスとgsonを使用することができます。しかし、地図で試していた – j2emanue