我在我的ASP.NET Core Web应用程序和Web API中使用Newtonsoft,但我得到了
参数exception:无法从system.string施放或转换为tcginfo.webui.models.tcgmodel。
这是我的代码:
创建JSON:
public async Task<string> GetTCGList()
{
var TCGList = await _manageCardHelper.GetTCGList();
var json = JsonConvert.SerializeObject(TCGList);
return json;
}
阅读JSON:
var response = await httpClient.GetAsync("GetTCGList");
if (response.IsSuccessStatusCode)
{
var jsonResult = JsonConvert.DeserializeObject<TCGModel>(await response.Content.ReadAsStringAsync());
}
模型:
public class TCGModel
{
public string Abbreviation { get; set; }
public string Name { get; set; }
}
基于您要获取的路由(" gettcg list "(,我假设您实际上您实际上可以恢复过一系列模型,而不仅仅是一。您需要告诉DeserializeObject
:
jsonResult = JsonConvert.DeserializeObject<List<TCGModel>>(await response.Content.ReadAsStringAsync());
从上面的代码中,我只能说JsonConvert.DeserializeObject
应该列出TCFModel的列表,而不是TCFModel。以下代码应起作用。
var jsonResult = JsonConvert.DeserializeObject<List<TCGModel>>(await response.Content.ReadAsStringAsync());