【问题标题】:How to Append text to Dictionary using Json Writer如何使用 Json Writer 将文本附加到字典
【发布时间】:2021-10-11 16:47:01
【问题描述】:

使用 Newston.Json 将余额存储到银行帐户。当我添加新条目时,它会替换旧条目,我想将键值对附加到现有记事本文件中,而不是替换旧余额。

Key = 银行名称和账户

价值 = 平衡

全局变量

List<KeyValuePair<string, float>> vals3 = new List<KeyValuePair<string, float>>();

// 现在向账户添加余额

BankWithAccount = BankList.Text + AccountNotextBox1.Text;
balance = float.Parse(BalanceTxtBox.Text);

vals3.Add(new KeyValuePair<string, float>(BankWithAccount, balance));
        using (StreamWriter sw = File.CreateText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Balances.txt")))
        {
            string json = JsonConvert.SerializeObject(vals3);
            sw.Write(json);
        }

【问题讨论】:

标签: c# json dictionary json.net key-value


【解决方案1】:

来自 File.CreateText(String) 的文档:

创建或打开用于写入 UTF-8 编码文本的文件。如果文件已经存在,则覆盖其内容。 https://docs.microsoft.com/en-us/dotnet/api/system.io.file.createtext?view=net-5.0

你可能想要的是 File.AppendText(String):

创建一个 StreamWriter,它将 UTF-8 编码的文本附加到现有文件,如果指定的文件不存在,则附加到新文件。 https://docs.microsoft.com/en-us/dotnet/api/system.io.file.appendtext?view=net-5.0

【讨论】:

  • 当我编写 File.AppendText 时,我收到以下错误:Newtonsoft.Json.JsonReaderException: '完成读取 JSON 内容后遇到的附加文本:[.路径'',第 1 行,位置 53。'
  • 我发现是这个问题,当打开同一个窗口时,一切正常,但是当我关闭窗口并重新打开时,它会替换文本文件,否则 File.CreateText 正在附加文本。跨度>
  • 那么...您是在创建 1 个大 JSON 对象还是每行都是一个单独的 JSON 对象?
猜你喜欢
  • 2021-08-28
  • 1970-01-01
  • 2019-03-14
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多