Java中更新JSON数组内字段后如何保留完整原始JSON结构
问题原因
你的链式调用最终是在places数组的第一个子对象上执行toString(),所以返回结果只有这个子对象的内容。
org.json库的JSONObject、JSONArray都属于引用类型,你修改子对象的字段时,顶层的jobject实例内容已经同步更新,不需要基于子对象生成返回值,直接序列化顶层jobject即可得到完整的JSON结构。
调整后代码
public String modifyJson() throws Exception{ String jsonString = PiplineJson.payload(PiplineJson.filePath()); System.out.println(jsonString); JSONObject jobject = new JSONObject(jsonString); // 仅执行字段更新操作,不需要在此处调用toString jobject.getJSONArray("places") .getJSONObject(0) .put("eventName", randomString()); // 序列化整个顶层JSON对象得到完整结构 String result = jobject.toString(); System.out.println(result); return result; }
内容的提问来源于stack exchange,提问作者peter
相关产品推荐
相关产品推荐

