我没有在传递给DeserializeObject的字符串和复制相同字符串的值并在JsonLint中解析之间建立某种连接。
换句话说,我序列化一个对象(一个配置对象),然后获取生成的文件并将其作为资源添加到wpf应用程序。
有人选择了一个模板化配置,我显然希望反序列化该对象,这就是我遇到麻烦的时候。
字符串对象在代码中传递的方式有所不同,因为当我获取字符串值并将其粘贴到JsonLint中时,它会解析它是否有效?
byte[] contents = global::[MyProj].Properties.Resources.config1;
string result = System.Text.Encoding.UTF8.GetString(contents);
var deserialized = JsonConvert.DeserializeObject<rtfMasterContext>(result);
Amy要求前8个字节查看它是否是UTF8编码。现在这将揭示我缺乏知识但是在Text.Encoding行完成之前它不会被编码?另一方面,资源是一个json文件,已经是... utf8编码??
根据维基百科,UTF8是十进制形式的239 187 191.
我会调查一下,然后我会报告。
因此,基于文章和评论中的信息,如果我的文件是json类型,那么WPF将其作为byte []读取并添加UTF8 BOM。
将其转换为字符串不是问题,但随后反序列化BOM会抛出json解析器。
所以我将配置文件类型更改为txt,现在它可以作为字符串读取资源...但我希望得到我的OP的答案。
读取json资源文件的正确方法是什么,以便我可以重新水化它?
TIA