Залп: как я могу разобрать строку данных с целым числом по HashMap - PullRequest
0 голосов
/ 18 ноября 2018

как я могу разобрать строку данных с целым числом по HashMap У меня есть строковые и целочисленные данные JSON и проблема в HashMap он принимает только строковое или целочисленное значение Это структура JSON

   {
   "status":true,
   "message":"Get Products Successfully",
   "products":[
      {
         "p_id":48,
         "p_name":"Ford Red",
         "p_descrption":"rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
         "p_price":15000,
         "p_offer_price":12000,
         "p_image":"myLinkimage"
      }
     ]
   }

это мой код Java

 final ProgressDialog pDialog = new ProgressDialog(getActivity());
    pDialog.setMessage("Loading...");
    pDialog.show();

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, "myLink", null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {


                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    }){
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String,String> params = new HashMap<>();
            params.put("p_name","mac");
            params.put("p_descrption","mac mac 2018");
            params.put("p_price","10000");
            params.put("p_offer_price","8000");
            params.put("p_image","https://d.top4top.net/p_105212t9r1.jpg");
            return params;
        }
    };


    AppController.getInstance().addToRequestQueue(jsonObjectRequest);

и

params.put("p_price","10000");
params.put("p_offer_price","8000");

в моей структуре JSON это целое число, как я могу проанализировать эти данные как целочисленное значение?

1 Ответ

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

Вам не нужно ничего анализировать, лучше используйте JsonObjectRequest, как и предполагалось.

Что должно переместить карту из метода getParams (и, возможно, полностью удалить метод), а затем создать полезную нагрузку перед вызовом Volley

JSONObject payload = new JSONObject();
JSONArray products = new JSONArray();

JSONObject product = new JSONObject();
product.putInt("price", 100);
products.add(product);

payload.putArray("products", products);

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, "myLink", payload,
        new Response.Listener<JSONObject>() {

А если вы хотите проанализировать ответ , вы можете напрямую позвонить response.getInt, например

Если вы хотите, вы можете объединить Volley с Gson, как указано в документации Android, что делает эту реализацию более чистой, или Retrofit w / Gson будет работать аналогично

...