2
解析JSON在资源我有一个内容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
UPDATE:
去除字符串中的所有空格
var json = Regex.Replace(Encoding.UTF8.GetString(Resources.regionGroups), "(\"(?:[^\"\\\\]|\\\\.)*\")|\\s+", "$1");
后,我有下一个
"{\"EU\":[\"Germany\",\"Ukraine\",\"United Kingdom\",\"Hungary\"]}"
这也重现了异常。
什么是'无功JSON = Encoding.UTF8.GetString(Resources.regionGroups)的'json'变量的值;'在监视窗口? –
@AdilAnsari,'“{\ r \ n \ t \”EU \“:[\ r \ n \ t \ t \”Germany \“,\ r \ n \ t \ t”Ukraine \“,\ r \ n \ t \ t \“英国\”,\ r \ n \ t \ t \“匈牙利\ \ \ \ \ n”' – demo
**更新:* *'\ r \ n \ t \''会导致问题,请使用'json.Replace(“\ r”,“”)。替换(“\ n”,“”)替换(“\ t”,“ “)。替换(”\“,”“)'删除这些额外的字符串。 –