如何在JsonObject中更新元素值?

时间:2019-06-05 05:33:22

标签: java android json

我有一个参数为namehit的json文件。

[{
    "name": "pavan",
    "hit": true   
}]

我想将namehit更新为

[{
    "name": "sai",
    "hit": false
}]

我尝试使用put,但它没有更新值。

protected Void doInBackground(Void... voids) {

      /*  x = new ArrayList<Entry>();
        y = new ArrayList<String>();*/
        try {
            URL url=new URL("https://api.myjson.com/bins/1854yb");
            HttpURLConnection httpURLConnection=(HttpURLConnection) url.openConnection();
            InputStream inputStream=httpURLConnection.getInputStream();
            BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
            String line="";
            while (line!=null)
            {
                line=bufferedReader.readLine();
                data=data+line;
            }
            JSONArray JA=new JSONArray(data);
            for(int i=0;i<JA.length();i++)
            {
                JSONObject JO= (JSONObject) JA.get(i);
                singleparsed="Name:"+JO.get("name")+"\n"+
                        "Hit:"+JO.get("hit");

                JO.put("name","sai");
                JO.put("hit",false);

                dataparsed=dataparsed+singleparsed;
            }


        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;
    }

我想更新该文件中的任何元素,但是不起作用。

2 个答案:

答案 0 :(得分:1)

您可以按需要覆盖相同的键来覆盖该值。

<?php
// header("Access-Control-Allow-Origin: *");
// header("Content-Type: application/json; charset=UTF-8");
$conn = new mysqli("localhost", "root", "root", "test2");
$result = $conn->query("SELECT *FROM info");
$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {

   if ($outp != "") {$outp .= ",";}

   $outp .= '{"rollno":"'  . $rs["rollno"] . '"}';
   $outp .= '{"name":"'   . $rs["name"]      . '"}';
   $outp .= '{"email":"'   . $rs["email"]      . '"}';
   $outp .= '{"phone":"'   . $rs["phone"]      . '"}';
   $outp .= '{"address":"'   . $rs["address"]      . '"}';
}
$outp ='{"records":['.$outp.']}';
$conn->close();
echo($outp);
?>

答案 1 :(得分:0)

我们可以在Volley中使用JSON Object请求而不是String请求。

JSONObject obj = JSONObject()
obj.put("name", "xxx")
obj.put("hit", false)

Log.i("OutPut : ",obj.toString())