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

如何修改JSON文件中的嵌套值(含Postman集合示例及代码调试需求)

如何修改JSON文件中的嵌套值(含Postman集合示例及代码调试需求)

嗨,我看了你遇到的问题和尝试的代码——问题出在Postman集合里的body.raw本身是一个JSON格式的字符串,不是直接可访问的嵌套对象,所以你直接通过jsonObj["item"][0]["body"][1]去访问肯定找不到目标值啦。我来给你一步步修正,还会告诉你怎么修改body里的任意细节~

正确的代码实现(基于Newtonsoft.Json)

你用的是Json.NET(Newtonsoft.Json),那我们就基于这个库来写,代码里加了详细注释,一看就懂:

using System.IO;
using Newtonsoft.Json;

class Program
{
    static void Main()
    {
        // 1. 读取本地的Postman集合JSON文件
        string jsonFilePath = "invoice.json";
        string rawJsonContent = File.ReadAllText(jsonFilePath);
        dynamic rootJsonObj = JsonConvert.DeserializeObject(rawJsonContent);

        // 2. 定位到你要修改的那个请求(这里是第一个item,对应"019048MAM000"的请求)
        var targetRequestItem = rootJsonObj.item[0];
        // 把body里的raw字符串反序列化成可操作的动态对象
        dynamic requestBodyObj = JsonConvert.DeserializeObject(targetRequestItem.request.body.raw);

        // 3. 修改目标值:这里替换supplierIdentifier为你要的新值
        requestBodyObj.invoiceTIEF.supplierIdentifier = "0194711AMM00";

        // ✅ 如果你要修改body里的其他任意细节,直接按嵌套路径改就行:
        // 比如修改合作伙伴名称
        // requestBodyObj.invoiceTIEF.supplierDetails.partnerName = "更新后的合作伙伴名";
        // 比如修改地址里的街道
        // requestBodyObj.invoiceTIEF.supplierDetails.address.street = "新的街道地址";
        // 甚至修改请求的bearer token也可以:
        // targetRequestItem.request.auth.bearer[0].value = "你的新Token";

        // 4. 把修改后的body对象重新序列化为格式化的字符串,放回原位置
        targetRequestItem.request.body.raw = JsonConvert.SerializeObject(requestBodyObj, Formatting.Indented);

        // 5. 把整个修改后的JSON对象序列化回文件,保留缩进格式
        string updatedJson = JsonConvert.SerializeObject(rootJsonObj, Formatting.Indented);
        File.WriteAllText(jsonFilePath, updatedJson);
    }
}

关键说明

  • 为什么要单独处理body.raw?因为Postman集合的请求体是存在raw字段里的JSON字符串,不是直接的嵌套对象,必须先反序列化它才能修改内部的字段
  • 用dynamic类型是为了灵活操作嵌套JSON,不用提前定义一堆强类型类;如果你的JSON结构固定,也可以用VS的「粘贴JSON为类」功能生成强类型,这样更安全
  • 如果要批量修改多个item里的请求,只需要遍历rootJsonObj.item数组就行,比如用foreach循环逐个处理

前置准备

确保你的项目已经安装了Newtonsoft.Json包:

  • 打开NuGet包管理器,搜索「Newtonsoft.Json」安装
  • 或者用Package Manager Console执行:Install-Package Newtonsoft.Json

测试前记得备份原始的invoice.json文件哦,避免误操作丢失数据~

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 11:29:30