向JSON 数据中添加新的数据!

#奈何新手能力有限,向各位求教!!!

#根据前端用户提交的JSON数据,追加到现有的JSON数据中,根据每条数据对应的key,添加到popup_rules数组中。比如要更新JSON数据第三条,key是320552729,把前端提交的数据添加到320552723对应的popup_rules数组中。

#前端提交的数据格式如下,midRule 和mactionRule 是两个变量,接收前端提交的数据,注意花括号两边的双引号,更新数据不能有这两个双引号。

"{\"id\":\"" + midRule + "\",\"action\":\"" + mactionRule + "\"}"

#数据结构如下:

[
  {
    "320552723": "{\"popup_rules\":[{\"id\":\"感谢您的陪伴,立即跟新收获惊喜\",\"action\":\"下次再说\"},{\"id\":\"关闭\",\"action\":\"关闭\"},{\"id\":\"dialog_close\",\"action\":\"dialog_close\"}]}"
  },
  {
    "-1835777899": "{\"popup_rules\":[{\"id\":\"青少年模式\",\"action\":\"我知道了\"},{\"id\":\"common_confirm_dialog_center_layout\",\"action\":\"common_confirm_dialog_cancel\"},{\"id\":\"打开定位\",\"action\":\"我知道了\"},{\"id\":\"及时获取&消息\",\"action\":\"取消\"},{\"id\":\"tv_love_sub_title\",\"action\":\"iv_close_love_tips\"},{\"id\":\"打开通知\",\"action\":\"iv_notice_close\"}]}"
  },
  {
    "320552729": "{\"popup_rules\":[{\"id\":\"立即更新\",\"action\":\"稍后更新\"},{需要追加的位置}]}"
]

引用 皆我百晓生 小程序回复内容作答:
要向JSON数据中添加新的数据,你可以按照以下步骤进行操作:

  1. 首先,将前端提交的数据格式化为一个字符串,包括id和action的值,例如:"{"id":"" + midRule + "","action":"" + mactionRule + ""}"

  2. 然后,找到要更新的JSON数据的位置,通过key来定位。在你给出的例子中,要更新的数据key是"320552729"。

  3. 在要更新的位置的popup_rules数组中,将第2步中格式化的数据添加到末尾(或者你想要添加的位置)。

  4. 最后,将更新后的JSON数据返回给前端。

根据你提供的数据结构,更新后的数据应该如下:

[
  {
    "320552723": "{\"popup_rules\":[{\"id\":\"感谢您的陪伴,立即跟新收获惊喜\",\"action\":\"下次再说\"},{\"id\":\"关闭\",\"action\":\"关闭\"},{\"id\":\"dialog_close\",\"action\":\"dialog_close\"}]}"
  },
  {
    "-1835777899": "{\"popup_rules\":[{\"id\":\"青少年模式\",\"action\":\"我知道了\"},{\"id\":\"common_confirm_dialog_center_layout\",\"action\":\"common_confirm_dialog_cancel\"},{\"id\":\"打开定位\",\"action\":\"我知道了\"},{\"id\":\"及时获取&消息\",\"action\":\"取消\"},{\"id\":\"tv_love_sub_title\",\"action\":\"iv_close_love_tips\"},{\"id\":\"打开通知\",\"action\":\"iv_notice_close\"}]}"
  },
  {
    "320552729": "{\"popup_rules\":[{\"id\":\"立即更新\",\"action\":\"稍后更新\"},{需要追加的位置},{\"id\":\"" + midRule + "\",\"action\":\"" + mactionRule + "\"}]}}"
  }
]

hutool工具的json工具类或者fast json2工具类处理就可以咯。

看一下这个例子,解决问题的话,记得采纳哦

import org.json.JSONObject;  
import org.json.JSONArray;  
  
public class JsonUpdateExample {  
    public static void main(String[] args) {  
        // 现有JSON数据  
        String jsonString = "{\"id\": 1, \"name\": \"John\", \"popup_rules\": [{\"id\": 1, \"action\": \"show\"}, {\"id\": 2, \"action\": \"hide\"}]}";  
        JSONObject jsonObject = new JSONObject(jsonString);  
  
        // 前端提交的数据  
        int midRule = 320552729;  
        String mactionRule = "update";  
  
        // 构建新的popup_rules数组  
        JSONArray newPopupRules = new JSONArray();  
        JSONArray existingPopupRules = jsonObject.getJSONArray("popup_rules");  
        for (int i = 0; i < existingPopupRules.length(); i++) {  
            JSONObject existingRule = existingPopupRules.getJSONObject(i);  
            int existingId = existingRule.getInt("id");  
            if (existingId == midRule) {  
                // 更新已存在的规则  
                existingRule.put("action", mactionRule);  
            } else {  
                // 将已存在的规则添加到新的数组中  
                newPopupRules.put(existingRule);  
            }  
        }  
  
        // 添加新的规则到popup_rules数组中  
        JSONObject newRule = new JSONObject();  
        newRule.put("id", midRule);  
        newRule.put("action", mactionRule);  
        newPopupRules.put(newRule);  
  
        // 更新JSON对象中的popup_rules数组  
        jsonObject.put("popup_rules", newPopupRules);  
  
        // 输出更新后的JSON字符串  
        System.out.println(jsonObject.toString());  
    }  
}