public static UserItem DownloadJSONString(string urlJson)
{
using (WebClient wc = new WebClient())
{
var json = wc.DownloadString(urlJson);
UserItem userItems = JsonConvert.DeserializeObject<RootObject>(json);
return userItems;
}
}
我正在研究Json文件以反序列化C#poco类,如下所示:
var root = JsonConvert.DeserializeObject<RootObject>(json);
我注意到它从you’ll
转换为you’ll
我不确定它是从哪里来的,我在浏览器中查看了json文件,它呈现为{{1 }} NOT you’ll
我试过了you’ll
但没有解码。
PS:我不确定这是否有帮助,但我正在使用HttpUtility.HtmlDecode
进行反序列化
答案 0 :(得分:0)
这可能不是特定于JSON解析器的问题。
更有可能的是,问题在于您如何获得json
。它似乎是一个编码问题 - 也许您正在读取使用Windows-1252或ISO-8859-1编码的文件,但读者将其视为UTF-8。反之亦然。
WebClient.DownloadString
使用提供的Encoding
进行此转换。您需要明确设置它:
public static UserItem DownloadJSONString(string urlJson)
{
using (WebClient wc = new WebClient())
{
wc.Encoding = Encoding.UTF8;
var json = wc.DownloadString(urlJson);
UserItem userItems = JsonConvert.DeserializeObject<RootObject>(json);
return userItems;
}
}