使用 C# 更新 json 文件中的属性

2024-04-23

我希望更改 json 文件中每个 json 记录的特定属性。当方法完成执行时,我想将“Completed”属性更改为“true”。

我的 json 文件如下所示:

{
  "LoanRecords": [
    {
      "LoanGUID": "{70dbec7e-5e94-460d-831c-0a5dc2d085e2}",
      "RecordDT": "2020-11-10T14:44:34.378Z",
      "Completed": "false",
      "Environment": "TEBE",
      "ProcessType": "RateLock"
    },
    {
      "LoanGUID": "{70dbec7e-5e94-460d-831c-0a5dc2d085e2}",
      "RecordDT": "2020-11-10T14:53:12.187Z",
      "Completed": "false",
      "Environment": "TEBE",
      "ProcessType": "RateLock"
    }
    ]
}

我的 C# 代码如下:

    private void ExecuteEvent(object sender, ElapsedEventArgs e)
    {
            string fileRecord = File.ReadAllText(jsonfile);
            LoanRecordRoot LoanRecord = JsonConvert.DeserializeObject<LoanRecordRoot>(fileRecord);
            foreach (var rec in LoanRecord.LoanRecords)
            {
                if (rec.Completed == "false")
                {
                    bool recordModified = ManipulateEncompass(rec.LoanGUID, rec.ProcessType);
                    if (recordModified)
                    {
                        // What should I do here to update "rec.Completed" to "true"
                        // for this particular record and write it back to the json file
                        // for that specific entry?
                    }
                }
            }
            Console.WriteLine("Successfully manipulated records!");
        }

有没有办法将“foreach”迭代中特定记录的“Completed”属性翻转为“true”,并相应地更新该特定记录的 json 文件?我希望避免读取整个文件、反序列化、更改属性,然后将整个内容写回 json 文件,我希望在“foreach”循环中翻转每个记录的特定属性。 - 我希望这是有道理的。

我看过类似的问题,这些问题似乎与我正在寻找的内容很接近,但我看到的示例并没有反映在不覆盖文件内容的情况下专门写回 json 文件 - 除非这个特定操作不是“不可能,或者我无法理解整个过程(很有可能。)

接近我正在寻找的解决方案的示例:如何使用 NewtonSoft 更新 JSON 对象的属性 https://stackoverflow.com/questions/22853066/how-to-update-a-property-of-a-json-object-using-newtonsoft——但似乎不太符合我想做的事情。

预先感谢您提供任何有用的线索!


更新数组元素的属性时需要保存完整的 JSON

    static void Main(string[] args)
    {
        const string jsonPath = @"C:\Logs\recordRoot.json";
        var loanRecordRoot = JsonConvert.DeserializeObject<LoanRecordRoot>(File.ReadAllText(jsonPath));
        foreach (var record in loanRecordRoot.LoanRecords)
        {

            if (record.Completed == "false")
            {
                if (ManipulateEncompass(rec.LoanGUID, rec.ProcessType))
                {
                    record.Completed = "true";
                }
            }
        }

       //Save Json
       var json = JsonConvert.SerializeObject(loanRecordRoot, Formatting.Indented);
       File.WriteAllText(jsonPath, json);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 C# 更新 json 文件中的属性 的相关文章

随机推荐

  • 将字符串中的数字替换为字符串和附加到该字符串的数字的长度

    基本上我需要在数据框中取一列 其中包含字符和数字的组合 例如 XYZABC 123441 s sdx 和类似的类型 我需要删除所有标点符号 单字母单词 用单空格替换双空格 修剪字符串 并将数字替换为 NUMB 其中 表示数字的长度 所以这里
  • 循环遍历复选框并对每个选中或未选中的复选框进行计数

    我遇到了一点问题 这是一个简短的解释 我在标准表格上有 12 个复选框 我需要做的是循环遍历它们中的每一个并了解哪些已检查 哪些未检查 使用它 我可以构建一个字符串 然后将其输入到数据库字段中 这是一个例子 检查1 已检查 检查2 未检查
  • 如何在多个 Twitter Bootstrap 选项卡上只有一个表单?

    如何将多个 Twitter Bootstrap 选项卡合二为一 div class tabbable ul class nav nav tabs li class active a href 1 Tab1 a li li a href 2
  • 有人可以向我解释一下什么时候使用 MapMaker 或 WeakHashMaps 有用吗?

    我读过很多人非常喜欢MapMaker http guava libraries googlecode com svn trunk javadoc com google common collect MapMaker htmlGoogle G
  • 手势识别器和 TableView

    我有一个 UIView 覆盖了 UITableView 的所有内容 UIView 使用手势识别器来控制表格显示的内容 我仍然需要垂直 UITableView 滚动和行点击 我如何将这些从手势识别器传递到桌子上 如果您需要知道单元格的索引路径
  • 为什么使用 $PATH 以及它是什么

    我对编程有点陌生 不是真的 但我仍在学习 我们不是吗 虽然我了解 Java 和 Python 并且了解 C C JS C HTML CSS 等 并且我可以在终端中很好地导航 但我不熟悉终端中的 PATH 是什么 我使用 Linux 终端和
  • 键路径值类型“Int”无法转换为上下文类型“String”

    我试图将包含 KeyPath 和排序顺序类型的多个元组传递给应该进行排序的方法 我有这个方法 extension Array mutating func sort
  • 使用 Python 的内置 .csv 模块进行编写

    请注意 这是一个与已经回答的问题不同的问题如何使用 Python 的内置 csv writer 模块替换列 https stackoverflow com questions 1019200 how to replace a column
  • 部署 Qt Quick 演示应用程序 Minehunt 时出现全白屏幕

    为了测试部署过程 我尝试部署附带的演示应用程序 Minehunt 我能够让它运行 没有崩溃或错误 但屏幕是全白的 我相信这通常意味着我缺少插件 Dependency walker 报告没有问题 我什至尝试包含 Qt MingW 插件目录中的
  • Start-Job - 实时检索输出

    我们通过以下方式启动 Powershell 函数Start Job并希望实时检索调用者的输出 有没有一种好的方法可以在不打电话的情况下做到这一点Retrieve Job在循环中 尝试这样的事情 appJob Start Job foreac
  • 对等网络应用程序的网络发现

    我希望有两个类 一个服务器类和一个客户端类 服务器类应该接收每个新客户端的 IP 地址和端口号并将它们存储在列表中 它应该为每个客户端提供已连接客户端及其 IP 地址的列表 然后 客户端可以使用 TCP 连接相互通信 问题是客户端不知道服务
  • 查找集合中的所有对象 Java Mongodb

    下面的代码查找集合中的第一个文档 package database import com mongodb BasicDBObject import com mongodb BulkWriteOperation import com mong
  • 使用 Python 从原始帧创建 MPEG4 视频文件

    我有一个原始视频帧源 我可以在 Python 中访问它 我想用它创建一个 MPEG4 视频 并带有 MP3 背景音乐 Python 中有哪些类型的工具和库可用于此类任务 最好我想要一个 API 我可以为其提供输出文件名 然后将各个帧作为 2
  • Aureliajs 等待应用程序构造函数上的数据

    我正在 aureliajs 中开发一个应用程序 开发过程已经开始了好几个月 现在后端开发人员希望对其服务进行版本控制 因此 我有一个 Web 服务可以调用来获取每个服务器端 Web api 应用程序的版本 然后 对于进一步的请求 调用正确的
  • 更好的德尔福印地 2007

    使用 Delphi 2007 附带的默认 indy10 或将其升级到最新快照版本哪个更好 为什么 谢谢 始终保持最新版本 它包含错误修复 如果您报告 Delphi 提供的库存版本存在问题 您将得到的第一个建议是升级到最新版本 因为您的错误可
  • 如何在选择自定义 UITableViewCell 时获取触摸坐标?

    当我触摸 触摸 UITableViewCell 时 我的 ViewController 的 UITableViewDelegate 方法 void tableView UITableView tableView didSelectRowAt
  • 整数包装对象仅在值 127 内共享相同的实例? [复制]

    这个问题在这里已经有答案了 这里它们是同一个实例 Integer integer1 127 Integer integer2 127 System out println integer1 integer2 outputs true 但这里
  • 在 ASP.NET 中通过 AJAX 使用后台工作程序

    我需要执行一项后台任务 该任务有一个显示完成百分比的进度条和一个取消按钮 撇开任务细节不谈 现在 我只想让一个示例正常工作 因此我只有三个主要事件处理程序 DoWork ProgressChanged 和 RunWorkerComplete
  • 检查 401,然后重定向 Angularjs,但仅在某些路由上

    我有一个很好的角度服务 可以通过查看服务器是否返回 401 错误消息来检查用户是否登录 如果是 用户将被重定向到登录页面 这很有效 但问题是它对于我的所有页面来说都是完全全局的 我有一条特殊路线位于 explore 顺便说一句 使用 UI
  • 使用 C# 更新 json 文件中的属性

    我希望更改 json 文件中每个 json 记录的特定属性 当方法完成执行时 我想将 Completed 属性更改为 true 我的 json 文件如下所示 LoanRecords LoanGUID 70dbec7e 5e94 460d 8