Newtonsoft DeserializeObject意外错误“”第0行pos 0嵌入资源字符串

时间:2015-10-08 12:41:55

标签: c# json wpf

我没有在传递给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编码??

First Eight Bytes

根据维基百科,UTF8是十进制形式的239 187 191.

我会调查一下,然后我会报告。

因此,基于文章和评论中的信息,如果我的文件是json类型,那么WPF将其作为byte []读取并添加UTF8 BOM。

将其转换为字符串不是问题,但随后反序列化BOM会抛出json解析器。

所以我将配置文件类型更改为txt,现在它可以作为字符串读取资源...但我希望得到我的OP的答案。

读取json资源文件的正确方法是什么,以便我可以重新水化它?

TIA

0 个答案:

没有答案