首页 > 解决方案 > 在 ASP.Net Core 中使用 Newtonsoft 将 JSON 转换为模型时出现 ArgumentException

问题描述

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

标签: jsonasp.net-corejson.net

解决方案


根据您获取的路线(“GetTCG List ”),我假设您实际上得到了一系列模型,而不仅仅是一个。你需要告诉你DeserializeObject

jsonResult = JsonConvert.DeserializeObject<List<TCGModel>>(await response.Content.ReadAsStringAsync());

推荐阅读