我正在使用以下代码从Web服务获取json数据,我生成的mvc网站正在为&;创建代码。字符,我如何确保可以使用以下方法对其进行解码。
public async Task<List<BomLookupModel>> GetBomLookups()
{
List<BomLookupModel> _result = new List<BomLookupModel>();
try
{
var uri = new Uri(string.Format(Constants.GetBomLookupInfo, string.Empty));
var response = await _client.GetAsync(uri);
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
_result = JsonConvert.DeserializeObject<List<BomLookupModel>>(content);
}
}
catch(Exception ex)
{
Log.Warn(ex.Message.ToString());
}
return _result.ToList();
}
我不确定是不是&im假定从其中包含&char的原始数据得出。
例如
{"Reference":"GYNE-D\u0026C","Description":"D\u0026C"},
这是我从上面调用的webservice方法。
[HttpGet]
public ActionResult GetBomLookup()
{
List<BomLookupModel> result = new List<BomLookupModel>();
result = database.GetBomLookupCodes();
return Json(result, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:0)
我认为您的问题与该response.Content.ReadAsStringAsync();
的编码有关。
所以我建议您这样做:
if (response.IsSuccessStatusCode)
{
var byteArray = await response.Content.ReadAsByteArrayAsync();
var content = Encoding.UTF8.GetString(byteArray, 0, byteArray.Length);
_result = JsonConvert.DeserializeObject<List<BomLookupModel>>(content);
}