gpt4 book ai didi

c# - REST Api 为同一对象返回不同的对象名称,如何使用 RestSharp 处理?

转载 作者:太空狗 更新时间:2023-10-30 00:39:41 24 4
gpt4 key购买 nike

我正在为 Qualtrics API 编写 C# 实现(v 2.5) 使用 RestSharp .调用方法时 getUserIds ,它返回 JSON 格式的用户列表(请参阅下面的示例输出)。

我面临的问题/问题是,对于每个用户对象(Result 下的对象列表)它生成一个不同的 id,从 URH_。使用 json2csharp 时它当然假定它始终是一个不同的类,而实际上它与您在输出中看到的完全相同,并且如 api 文档中所述。 我怎样才能最好地解决这个问题 - 以便我可以创建一个我可以重用的 UserData 类?因为现在我显然总是看到这些随机的 URH_每个响应中的前缀类。

注意:我想我可以先尝试处理响应,当我得到响应时,将根 Result 对象下的每个 URH_ 前缀对象替换为 "UserData" string - 但我觉得这有点违反规则,并且认为社区会有更好的解决方案?


下面是原始 JSON 输出(注意我删除了敏感信息):

{"Meta":{"Status":"Success","Debug":""},"Result":{"URH_3wpA9pxGbE0c7Xu":{"DivisionID":null,"UserName":"user.name@domain.com","UserFirstName":"x","UserLastName":"x","UserAccountType":"UT_4SjjZmbPphZGKDq","UserEmail":"x.x@x.x","UserAccountStatus":"Active"},"URH_57vQr8MVXgpcPUo":{"DivisionID":"DV_XXXXXXXX","UserName":"jxxxx@xx.xxx","UserFirstName":"X","UserLastName":"X","UserAccountType":"UT_BRANDADMIN","UserEmail":"xxxx@xxg.xxx","UserAccountStatus":"Active"},"URH_6ujW1EP0QJOUaoI":{"DivisionID":"DV_XXXXXXXYZ","UserName":"x.xckx@xxx.xyz","UserFirstName":"x","UserLastName":"x","UserAccountType":"UT_XXXXXABCD","UserEmail":"c.c@cc.com","UserAccountStatus":"Active"}}}

这是我使用 json2csharp 生成模型时得到的结果:

public class Meta
{
public string Status { get; set; }
public string Debug { get; set; }
}

public class URH3wpA9pxGbE0c7Xu
{
public object DivisionID { get; set; }
public string UserName { get; set; }
public string UserFirstName { get; set; }
public string UserLastName { get; set; }
public string UserAccountType { get; set; }
public string UserEmail { get; set; }
public string UserAccountStatus { get; set; }
}

public class URH57vQr8MVXgpcPUo
{
public string DivisionID { get; set; }
public string UserName { get; set; }
public string UserFirstName { get; set; }
public string UserLastName { get; set; }
public string UserAccountType { get; set; }
public string UserEmail { get; set; }
public string UserAccountStatus { get; set; }
}

public class URH6ujW1EP0QJOUaoI
{
public string DivisionID { get; set; }
public string UserName { get; set; }
public string UserFirstName { get; set; }
public string UserLastName { get; set; }
public string UserAccountType { get; set; }
public string UserEmail { get; set; }
public string UserAccountStatus { get; set; }
}

public class Result
{
public URH3wpA9pxGbE0c7Xu URH_3wpA9pxGbE0c7Xu { get; set; }
public URH57vQr8MVXgpcPUo URH_57vQr8MVXgpcPUo { get; set; }
public URH6ujW1EP0QJOUaoI URH_6ujW1EP0QJOUaoI { get; set; }
}

public class RootObject
{
public Meta Meta { get; set; }
public Result Result { get; set; }
}

最佳答案

很简单 - 只需使用 Dictionary<string, UserData> Result 的通用类型领域:

public class Response
{
public Meta Meta { get; set; }
public Dictionary<string, UserData> Result { get; set; }
}

public class Meta
{
public string Status { get; set; }
public string Debug { get; set; }
}

public class UserData
{
public string DivisionID { get; set; }
public string UserName { get; set; }
public string UserFirstName { get; set; }
public string UserLastName { get; set; }
public string UserAccountType { get; set; }
public string UserEmail { get; set; }
public string UserAccountStatus { get; set; }
}

关于c# - REST Api 为同一对象返回不同的对象名称,如何使用 RestSharp 处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33752642/

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