将 JObject 保存为 Base64 编码文件

save JObject as Base64 Encoded file

我正在使用此代码将 Json 文件读入 JObject myParams。这个很好用

using (StreamReader file = File.OpenText("config.json"))
using (JsonTextReader reader = new JsonTextReader(file))
{
    JObject myParams = (JObject)JToken.ReadFrom(reader);
}

然后我想要的是对信息进行编码并将其保存回另一个文件。 此代码读取文件,对其进行编码并直接保存。有效

using (StreamWriter w = new StreamWriter("filenameEncoded.bson", true))
    ​w.Write(Convert.ToBase64String(File.ReadAllBytes("filename.json")));

但是我不想读取文件并立即对其进行编码。

相反,我想用第一段代码导入 myParams,对 JObject 做一些修改,然后对其进行编码并将其编码保存在文件中。

问题是我无法在 myParams 上使用 Convert.ToBase64String,因为它需要字节而不是 JObject。

如何编码 JObject myParams 并将其保存到编码文件中?

您可以将以下参数传递给您的 Convert.ToBase64String 方法调用:

Encoding.UTF8.GetBytes(myParams.ToString(Formatting.None))
  • JObjectToString 调用是 overwritten to emit Json
  • Formatting.None 参数将省略缩进
  • Encoding.XYZ.GetGetBytes 将字符串转换为 byte[]