正在API响应中使用对象

本文关键字:对象 API 响应 正在 | 更新日期: 2023-09-27 18:24:43

我正在构建一个响应GET请求的API。一个字段是一个对象,它需要用数据重复查询返回的次数。

有人能给我举一个例子,说明如何在带有c#的响应中使用对象吗?还需要创建类吗?

提前谢谢。

添加:

到目前为止,我有一个类似的结构:

public class root
{
public int model { get; set; }
public string lang { get; set; }
public part[] parts { get; set; }
}
public class part
{
public int id { get; set; }
public string name { get; set; }
public type part_types { get; set; }
}
public class type
{
public string url { get; set; }
public string desc { get; set; }
}

并且作为返回的响应

{"model":4,"lang":"en_US","parts":[{"id":1545,"name":"Part 1","Part_types":{"url":"Part.com/type1",《desc》:"has 6 bits"}]}

但我需要像一样

{"model":4,"lang":"en_US","parts":[{"id":1545,"name":"Part 1","Part_types":{"type 1":{

part_type字段是对象,我创建了一个名为type的类。但我需要有一个或多个类型,并指定类型的名称,例如"类型1",然后在它下面再有两个字段url和desc。正如你可以看到的,上面有两个类型,类型1和类型2。

有人能帮我哪里出错吗?

正在API响应中使用对象

所以,如果我理解正确,你希望"part_types"能够有很多部分吗?在当前代码中,part_types对象只能有一个。

你需要两样东西:1.作为集合的数据类型,以及2.一个序列化程序,可以按照您想要的方式写入该数据类型。例如,您可以使用Dictionary(System.Collections.Generic.Dictionary)

public Dictionary<string,type> part_types { get; set; }

因此,假设您已经创建了type1和type2对象,那么您将编写:

mypart.part_types = new Dictionary<string,type>();
mypart.part_types.Add("type 1", type1);
mypart.part_types.Add("type 2", type2);

现在发生什么取决于序列化程序。我通常使用Json.NET,它运行良好并且是免费的。我设置了像你一样的对象,但使用了字典,我得到了:

{
  "model": 4,
  "lang": "en_US",
  "parts": [
    {
      "id": 1545,
      "name": "Part 1",
      "part_types": {
        "type 1": {
          "url": "part.com/type1",
          "desc": "has 6 bits"
        },
        "type 2": {
          "url": "part.com/type1",
          "desc": "has 6 bits"
        }
      }
    }
  ]
}

我想这就是你想要的。。。但是,使用DataContractJsonSerializer(System.Runtime.Serialization.Json.DataContractJson序列化程序),我得到了这个:

{
  "lang": "en_US",
  "model": 4,
  "parts": [
    {
      "id": 1545,
      "name": "Part 1",
      "part_types": [
        { "Key" : "type 1", "Value": {"desc":"has 6 bits","url":"part.com'/type1"} },
        { "Key" : "type 2", "Value": {"desc":"has 6 bits","url":"part.com'/type1"} }
      ]
    }
  ]
}

我不确定DataContractJsonSerializer是如何处理其他集合(例如Lists、KeyValuePairs等)的,所以如果您正在使用它,您可能需要进行实验。