我在ASP.Net Core Web应用程序和Web API中使用了Newtonsoft,但得到了
ArgumentException:无法将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; }
}
答案 0 :(得分:0)
根据您要获取的路线(“ GetTCG 列表”),我假设您实际上是在获得一系列模型,而不仅仅是一个模型。您需要告诉DeserializeObject
:
jsonResult = JsonConvert.DeserializeObject<List<TCGModel>>(await response.Content.ReadAsStringAsync());
答案 1 :(得分:0)
从上面的代码中,我只能说JsonConvert.DeserializeObject
应该使用TCFModel列表而不是TCFModel。下面的代码行应该可以工作。
var jsonResult = JsonConvert.DeserializeObject<List<TCGModel>>(await response.Content.ReadAsStringAsync());