Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更新JsonObject中的元素值?_Java_Android_Json - Fatal编程技术网

Java 如何更新JsonObject中的元素值?

Java 如何更新JsonObject中的元素值?,java,android,json,Java,Android,Json,我有一个json文件,其中包含参数name和hit [{ "name": "pavan", "hit": true }] 我想将name和hit更新为 [{ "name": "sai", "hit": false }] 我尝试使用put,但它没有更新值 protected Void doInBackground(Void... voids) { /* x = new ArrayList<Entry>(); y

我有一个json文件,其中包含参数
name
hit

[{
    "name": "pavan",
    "hit": true   
}]
我想将
name
hit
更新为

[{
    "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;
    }
受保护的Void doInBackground(Void…voids){
/*x=新的ArrayList();
y=新的ArrayList()*/
试一试{
URL=新URL(“https://api.myjson.com/bins/1854yb");
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
InputStream InputStream=httpURLConnection.getInputStream();
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(inputStream));
字符串行=”;
while(行!=null)
{
line=bufferedReader.readLine();
数据=数据+行;
}
JSONArray JA=新JSONArray(数据);

对于(inti=0;i,我们可以在截取中使用JSON对象请求而不是字符串请求

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

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

您可以根据需要覆盖该值,以放置相同的键

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

JsonObject jsonObj = new JsonObject();
jsonObj .put("name", "Sai");
jsonObj .put("hit", false); 

你能详细说明一下吗?我没弄明白,实际上你需要更改动态参数。知道。JsonObject obj=JsonObject()obj.put(“name”,“xxx”)obj.put(“hit”,false)Log.i(“OutPut:,obj.toString())它不工作我想它不是JsonObject JsonObject我试过这个,为什么你要创建新的JsonObject我是说JsonObject正在正确地更改??这不工作,请看上面的代码我的JsonObject名称是JO,我也在做同样的事,但它不工作??创建另一个对象。JsonArray JsonArray=new JsonArray();JsonObject jsonObj=new JsonObject();jsonObj.put(“name”,“Sai”);jsonObj.put(“hit”,false);jsonArray.put(jsonObj);你怎么知道它不起作用了?通过查看
单解析的
?如果是这样,这是正常的,你需要将它移动到放置新值的行之后。是的,你是对的,但它没有在链接中更新为什么?好吧,然后向我们展示所有代码;在这里,你只是用新值创建了一个到
JO
对象的副本,但你不是使用它,也不将其发布回url。这是代码,要将其发回,该怎么办?谢谢这完全是另一个问题;请参阅