亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JSON Volley PUT 請求覆蓋一切

JSON Volley PUT 請求覆蓋一切

米琪卡哇伊 2022-07-20 10:51:07
我正在嘗試使用 Volley for Android 更新遠程 JSON 值。問題是下面的代碼完全覆蓋了整個 JSON 對象。文件位于此處:https ://api.myjson.com/bins/kubxi原始 JSON 文件如下所示:{  "females": [    {      "id": 1,      "name": "Name One",      "actions": [        {          "action_1": 1,          "action_2": 2,          "action_3": 3        }      ]    },    {      "id": 2,      "name": "Name Two",      "actions": [        {          "action_1": 4,          "action_2": 5,          "action_3": 6        }      ]    }  ]}Java 代碼private void sendRequest() {        RequestQueue queue = Volley.newRequestQueue(this);        final JSONObject jsonObject = new JSONObject();        String url ="https://api.myjson.com/bins/kubxi"; // Remote JSON file        try {            jsonObject.put("action_1", 123);            jsonObject.put("action_2", 456);            jsonObject.put("action_3", 789);        } catch (JSONException e) {            Log.d("Exception", e.toString());        }        JsonObjectRequest putRequest = new JsonObjectRequest(Request.Method.PUT, url, jsonObject,                new Response.Listener<JSONObject>()                {                    @Override                    public void onResponse(JSONObject response) {                        Log.d("Response", response.toString());                    }                },                new Response.ErrorListener()                {                    @Override                    public void onErrorResponse(VolleyError error) {                        Log.d("Error.Response", error.toString());                    }                }        )使用此代碼后,JSON 文件如下所示:{    "action_1": 123,    "action_2": 456,    "action_3": 789}我期望代碼僅將 action_1、action_2 和 action_3 上的值從 1、2、3 更新為 123、456、789。建議將不勝感激!
查看完整描述

1 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

要更新 json 文件中的特定值,您可以這樣做:


首先將您的originaljson 放入 String :


  String jsonString ="{

  "females": [

    {

      "id": 1,

      "name": "Name One",

      "actions": [

        {

          "action_1": 1,

          "action_2": 2,

          "action_3": 3

        }

      ]

    }

  ]

}";

接下來,將此字符串傳入JsonObject:


   JSONObject jObject  = new JSONObject(jsonString);//passing string to jsonobject

         JSONArray jsonArray = jObject.getJSONArray("females");

        for (int i = 0; i < jsonArray.length(); i++) {

         JSONObject object = jsonArray.getJSONObject(i);

         JSONArray jsonObject= object.getJSONArray("actions"); //getting action 

array

       for (int j = 0; j < jsonObject.length(); j++) {

         JSONObject object1 = jsonObject.getJSONObject(j);


           object1.put("action_1", 123); //here you are putting value to action_1

                    object1.put("action_2", 456);

                    object1.put("action_3", 789);

        }

        } 

然后將其發送jsonObject到您的服務器。


查看完整回答
反對 回復 2022-07-20
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號