You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:无法通过JSONObject修改JSON内transactionReferenceNumber属性值

问题原因

你遇到的核心问题是:request.eventDetails.message对应的是JSON格式的字符串,而非嵌套的JSON对象。你之前的代码只是把它转成了普通字符串,自然没法直接操作里面的transactionReferenceNumber属性。

解决方案

需要先把message字符串解析成独立的JSONObject,修改属性后再转回字符串,更新回主JSON结构中。以下是完整可行的代码示例:

import org.json.JSONObject;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;

public class JsonModifyExample {
    public static void main(String[] args) {
        try {
            // 1. 读取JSON文件并解析为主JSONObject
            String filepath = System.getProperty("user.dir") +
                    "/src/test/resources/Json_Files/Payment_Events_Api_PayLoad.json";
            String jsonContents = new String(Files.readAllBytes(Paths.get(filepath)));
            JSONObject mainJsonObject = new JSONObject(jsonContents);

            // 2. 获取eventDetails节点
            JSONObject eventDetails = mainJsonObject.getJSONObject("request")
                    .getJSONObject("eventDetails");

            // 3. 取出message字符串并解析为JSONObject
            String messageStr = eventDetails.getString("message");
            JSONObject messageJsonObject = new JSONObject(messageStr);

            // 4. 修改transactionReferenceNumber属性
            messageJsonObject.put("transactionReferenceNumber", "NEW_REFERENCE_1234");

            // 5. 将修改后的message对象转回字符串,更新回主JSON
            eventDetails.put("message", messageJsonObject.toString());

            // 6. (可选)将修改后的JSON写回原文件
            Files.write(Paths.get(filepath), mainJsonObject.toString(4).getBytes(), StandardOpenOption.TRUNCATE_EXISTING);
            System.out.println("JSON修改完成,已更新文件");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
关键说明
  • 二次解析:必须把message字符串转成JSONObject才能操作内部属性,这是解决问题的核心步骤
  • 更新主JSON:修改后的message对象要转回字符串,再通过eventDetails.put()更新回主结构,否则主JSON不会生效
  • 格式化输出:mainJsonObject.toString(4)会生成带4空格缩进的格式化JSON,方便查看;如果不需要格式化,直接用toString()即可

内容的提问来源于stack exchange,提问作者Balaji Singh .Y

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:43:36