c# - 如何将 JSON 响应反序列化到我的列表中?
问题描述
我想解析以下 JSON 响应:
{
"message": "string",
"errorCode": "string",
"totalSize": 0,
"offset": 0,
"done": true,
"nextRecordsUrl": "string",
"records": [
{
"id": "string",
"name": "string",
"external_ID_vod__c": "string",
"vExternal_Id_vod__c": "string"
}
]
}
**请注意,有多个“记录”
我用来反序列化 JSON 响应的相关类是:
public class RecordProduct
{
public string id { get; set; }
public string name { get; set; }
public string external_ID_vod__c { get; set; }
public string vExternal_Id_vod__c { get; set; }
}
public class Products
{
public string message { get; set; }
public string errorCode { get; set; }
public int totalSize { get; set; }
public int offset { get; set; }
public bool done { get; set; }
public string nextRecordsUrl { get; set; }
public List<RecordProduct> records { get; set; }
}
调用 API 的代码:
public void getAllProductInfo()
{
RestClient client = new RestClient("blahblahblah/");
RestRequest request = new RestRequest("/api/Products", Method.GET);
string securityToken = getBearerToken();
request.AddHeader("Accept", "application/json");
request.AddHeader("Authorization", "Bearer " + securityToken);
IRestResponse<JsonResponseSetup.Datum.Products> response = client.Execute<JsonResponseSetup.Datum.Products>(request);
var res = response.Data.records;
res.ForEach(Console.WriteLine);
}
当我执行最后一行时:res.ForEach(Console.WriteLine);
我没有打印记录。
编辑:我想通了。我只是错误地访问了记录的成员。以下代码代替了我的代码的最后两行。
foreach(var item in response.Data.records)
{
Console.WriteLine($"name: {item.name}, id: {item.id}");
}
解决方案
尝试这个
Products facebookFriends = new JavaScriptSerializer().Deserialize<Products>(result);
推荐阅读
- input - 如何在 Visual Studio Code 中的 python 交互中修复“StdinNotImplementedError”
- maven - Maven surefire插件v2.18和v2.22.0的区别
- xml - 如何在所有页面中添加动态标题,同时使用 XSL:FO 使用 fop 从 XML 生成 pdf?
- c++ - 使用skia库编译cpp wasm模块时遇到错误
- asynchronous - Vue 延迟加载/异步组件在初始加载时加载
- arrays - 在excel上使用vba进行无重复的Vlookup
- java - Java:将字符串转换为文档(W3C)而不解码数字字符参考
- java - 目标配方失败openjdk1.8
- python - 如何将 matplotlib 图保存为 .png 文件
- cordova - 如何在不使用关闭按钮的情况下关闭 phonegap/cordova InAppBrowser