无法解析资源中的json

时间:2016-02-26 11:39:48

标签: c# json serialization json.net

在资源中,我有json文件,其中包含下一个内容:

{
"EU": [
    "Germany",
    "Ukraine",
    "United Kingdom",
    "Hungary"
 ]
}

我想将其反序列化为Dictionary<string,List<string>>

我接下来试过了:

var json = Encoding.UTF8.GetString(Resources.regionGroups);//Resources.regionGroups return byte[]

return JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(json);

但每次因为变量json变为异常json格式而得到异常。

这会导致什么?我尝试了相同的反序列化,但jsonString是硬编码的,它可以工作。

详细的异常消息:

  

解析值时遇到意外的字符:。路径'',行   0,位置0。

     

更新:

删除所有空格后

var json = Regex.Replace(Encoding.UTF8.GetString(Resources.regionGroups), "(\"(?:[^\"\\\\]|\\\\.)*\")|\\s+", "$1");

来自字符串我有下一个

"{\"EU\":[\"Germany\",\"Ukraine\",\"United Kingdom\",\"Hungary\"]}"

也会重现异常。

1 个答案:

答案 0 :(得分:0)

正如我想的那样,@ AmitKumarGhosh对编码是正确的。

所以我试图在参考资料中更改我的json文件的类型。我已经将它从二进制文件更改为文本文件,这有帮助。

现在解析非常简单:

JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(Resources.regionGroups);