在资源中,我有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\"]}"
也会重现异常。
答案 0 :(得分:0)
正如我想的那样,@ AmitKumarGhosh对编码是正确的。
所以我试图在参考资料中更改我的json文件的类型。我已经将它从二进制文件更改为文本文件,这有帮助。
现在解析非常简单:
JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(Resources.regionGroups);