在ASP.Net Core中使用Newtonsoft将JSON转换为模型时出现ArgumentException

时间:2019-07-03 12:45:01

标签: json asp.net-core json.net

我在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; }
}

2 个答案:

答案 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());