【发布时间】:2019-07-19 18:58:46
【问题描述】:
我想解析以下 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}");
}
【问题讨论】:
标签: c# json restsharp json-deserialization