#奈何新手能力有限,向各位求教!!!
#根据前端用户提交的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数据中添加新的数据,你可以按照以下步骤进行操作:
首先,将前端提交的数据格式化为一个字符串,包括id和action的值,例如:"{"id":"" + midRule + "","action":"" + mactionRule + ""}"
然后,找到要更新的JSON数据的位置,通过key来定位。在你给出的例子中,要更新的数据key是"320552729"。
在要更新的位置的popup_rules数组中,将第2步中格式化的数据添加到末尾(或者你想要添加的位置)。
最后,将更新后的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());
}
}