Разбор данных в JSON с использованием хеш-карт - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь преобразовать шестнадцатеричные карты в пригодный для использования код json, но я не знаю, действительно знаю, как

protected Map<String, String> getParams() {
    Map<String, String>  params = new HashMap<String, String>();
    params.put("user_id", userID );
    Map<String, String>  foodOrder = new HashMap<String, String>();
    foodOrder.put("id",productID);

    foodOrder.put("item_count",numberOfItems.getText().toString());

    params.put("product", foodOrder.toString());
    Arrays.deepToString(new JSONObject[]{new JSONObject(params)});

    return params;
}

Это должно выглядеть примерно так:

{
  "user_id": 2,
  "product": {
      "id": 15,
      "item_count": 99
  }
}

Нотеперь я получаю это:

{
  "product": "{item_count=1, id=1}", 
  "user_id": "2"
}

Я использую библиотеку Volly для передачи приложения формы данных на сервер.

1 Ответ

0 голосов
/ 29 ноября 2018

Метод toString () не вернет json, если вы не реализовали его таким образом.В вашем случае вы используете toString hashMap, поэтому он не будет.Попробуйте преобразовать карту в строку json, используя Gson:

protected Map<String, String> getParams()
{
   Map<String, String>  params = new HashMap<String, String>();
   params.put("user_id", userID );
   Map<String, String>  foodOrder = new HashMap<String, String>();
   foodOrder.put("id",productID);
   foodOrder.put("item_count",numberOfItems.getText().toString());
   Gson gson = new Gson();
   params.put("product", gson.toJson(foodOrder));
   Arrays.deepToString(new JSONObject[]{new JSONObject(params)});
   return params;
 }
...