I'm reading a Json file into a JObject myParams
with this code. This works well
using (StreamReader file = File.OpenText("config.json"))
using (JsonTextReader reader = new JsonTextReader(file))
{
JObject myParams = (JObject)JToken.ReadFrom(reader);
}
What I want is then to encode the information and save it back into another file. This code reads a file, encodes it and directly saves it. It works
using (StreamWriter w = new StreamWriter("filenameEncoded.bson", true))
w.Write(Convert.ToBase64String(File.ReadAllBytes("filename.json")));
However I don't want to read a file and immediately encode it.
Instead I want to import myParams with the first piece of code, do some modifications to the JObject and then encode it and save it encoded in a file.
The problem is that then I cannot use Convert.ToBase64String
on myParams
since it expect bytes instead of a JObject.
How can I encode and save my JObject myParams into an encoded file?
You can pass the following parameter to your Convert.ToBase64String
method call:
Encoding.UTF8.GetBytes(myParams.ToString(Formatting.None))
ToString
call on the JObject
is overwritten to emit JsonFormatting.None
parameter will omit indentationEncoding.XYZ.GetGetBytes
converts a string into a byte[]