如何转换 REST API 响应

Posted

技术标签:

【中文标题】如何转换 REST API 响应【英文标题】:How to transform a REST API response 【发布时间】:2022-01-06 19:45:39 【问题描述】:

我有这个返回 REST API 响应的代码。如何解析 JSON 响应以遍历对象数组?

using (HttpClient httpClient = new HttpClient())

    var task = httpClient.GetAsync(url.ToString());
    var res = task.Result;
    res.Content.LoadIntoBufferAsync();

    var resultTask = res.Content.ReadAsStringAsync();

    finalResponse = resultTask.Result;   // this is Json response

   // need to loop through the finalResponse??

我的 REST API 响应结构如下。

"result": [
    
        “maxTry: 17,
        "minTry”: 10,
        "details": [
            
                “firstName”: “Sam”,
            ,
            
                "firstName”: ”Julio”,
            
        ],
        "aggr": [
            “Abc”,
        ],
        "zone": “D3”
    ,
    
        "aggr": [
            "Abc",
        ],
        "zone": “C3”
    ,
    
        "aggr": [
            "Abc",
        ],
        "zone": “B2”
    ,
  ]

【问题讨论】:

听起来你想反序列化 JSON。 @Llama 我试过这个,它给了我一些我无法循环的东西var jsonObject = JsonConvert.DeserializeObject(finalResponse); 您为此 JSON 创建了哪些类?可以分享一下吗? @Chetan 我还没有创建任何课程 这就是你需要做的...... 【参考方案1】:

第一步是将需要的类添加到deserializeJson数据中

public class JsonClass

   public List<JResult> Result  get; set; 

public class JResult

   public string MaxTry  get; set; 
   public string MinTry  get; set; 
   public List<Names> Details  get; set; 
   public List<string> Aggr  get; set; 
   public string Zone  get; set; 

public class Names

   public string FirstName  get; set; 

然后使用以下函数从网上下载数据。

private async Task<JsonClass> GetJsonData(string url)

   using (var client = new HttpClient())
   
       var result = await client.GetAsync(url);
       var response = await result.Content.ReadAsStringAsync();
       return JsonConvert.DeserializeObject<JsonClass>(response);
   

最终获取数据

 public JsonClass GetData(string url)
 
     var data = Task.Run(() => GetJsonData(url)).Result;
     return data;
 

【讨论】:

以上是关于如何转换 REST API 响应的主要内容,如果未能解决你的问题,请参考以下文章

如何将JSON响应转换为Java List-使用Rest Assured进行API测试

ReactJS:Rest API JSON 响应:如何解析

如何使用 WebClient 使用响应式 Spring Rest API

如何在请求后捕获 REST API 发送的响应令牌?

如何在java中进行rest api调用并映射响应对象?

iOS:如何从 REST SwiftUi 访问和使用 API 响应数据