gpt4 book ai didi

c# - 使用 HttpContent.ReadAsAsync 解析带有一个对象或数组的响应

转载 作者:行者123 更新时间:2023-12-04 14:59:12 28 4
gpt4 key购买 nike

我正在集成一个从几乎端点返回此模型的 API

{
meta: { ... },
data: { ... }
}

但对于某些调用,数据是同类对象的数组

{
meta: { ... },
data: [
{ ... },
{ ... }
]
}

我想使用 HttpContent.ReadAsAsync<ResponseObj>将这两个转换为我的 C# 类,我已经像这样设置了 Response 类:

public class ResponseObj {
public MetaObj Meta {get;set;}
public DataObj[] Data {get;set;}
}

有点出乎意料,我在尝试解析第一个响应时遇到异常。是否可以告诉 JSON 解析器处理单个数据对象并返回单个元素数组?

我能看到的唯一其他解决方案是创建单独的 ResponseObj两种不同响应类型的定义。

最佳答案

将您的 ResponseObj 创建为通用类。

public class ResponseObj<T> {
public MetaObj Meta {get;set;}
public T Data {get;set;}
}

您可以使用 HttpContent.ReadAsAsync<ResponseObj<DataObj>> 反序列化 json或 HttpContent.ReadAsAsync<ResponseObj<DataObj[]>>

关于c# - 使用 HttpContent.ReadAsAsync<T> 解析带有一个对象或数组的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67281084/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com