json - 在 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; }
}
解决方案
根据您获取的路线(“GetTCG List ”),我假设您实际上得到了一系列模型,而不仅仅是一个。你需要告诉你DeserializeObject
:
jsonResult = JsonConvert.DeserializeObject<List<TCGModel>>(await response.Content.ReadAsStringAsync());
推荐阅读
- ruby-on-rails-5.1 - 在设计中添加 Confirmable 时出现问题 - [ArgumentError - 参数数量错误(给定 0,预期为 1)]
- emacs - 配置 emacs 以在启动球拍 repl 之前指定 #lang
- reactjs - 使用 npm 全局安装 create-react-app 时出错
- mysql - 在行的下一个值不为空时对列求和
- javascript - Math.random() 在循环中使用时不会给出新的数字
- c# - 为什么在方法完成后处理我的键盘事件?
- json - 如何将json解析为list而不是flutter中的map
- shell - kubernetes pod.yaml 运行 shell 命令中的语法错误
- html - 如何在不转换的情况下将文本放置在移动的 div 上
- c# - 如何在不知道 ARRAY 索引的情况下使这个 CosmosDB SQL 查询工作?