如何修改JSONObject 的值

{

"result": {
    "total": "3",
    "shops": [
        {
            "shopId": "8b615ce0",
            "shopName": "舒",
            "icon": 
        },
        {
            "shopId": "f6f83000a",
            "shopName": "二号",
            "icon": 
        },
    ]
},
"code": 0,
"message": "OK",
"text": "OK"

}
JSONObject 对象rt
想要修改“shops” 对应的值怎么修改??

阅读 38.4k
4 个回答

这是fastjson的例子

JSONObject json = JSON.parseObject("{val: 123}");
System.out.println("======before=====");
System.out.println("size: " + json.size());
System.out.println("val:  " + json.get("val"));
json.put("val", 234); // 直接put相同的key
System.out.println("======after======");
System.out.println("size: " + json.size());
System.out.println("val:  " + json.get("val"));

结果

======before=====
size: 1
val:  123
======after======
size: 1
val:  234

额用的什么json库,用对应的方法改就行了啊

我假设你用的是com.googlecode.json-simple库吧(你提供的信息真的太少了,不知道该从哪说起)

然后,我再假设你是要修改shops里第一项的shopName,代码这样写:

JSONObject res = (JSONObject) obj.get("result");
JSONArray arr = (JSONArray)res.get("shops");
arr.set(0, "shopName: fuck");
System.out.println(obj);//检查结果

如果你是想给shops加一项内容,可以:

JSONObject res = (JSONObject) obj.get("result");
JSONArray arr = (JSONArray)res.get("shops");

JSONObject newShop = new JSONObject();

newShop.put("shopId", "asdfdsaf");
newShop.put("shopName", "毛驴");
newShop.put("icon", "");

arr.add(newShop);
System.out.println(obj);//检查结果

根据你使用的谷歌的json或者阿里的fastjson,利用他们提供的方法进行修改啊。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题