如何转换 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】:
第一步是将需要的类添加到deserialize
Json数据中
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测试