C# 在API响应中使用对象

C# 在API响应中使用对象,c#,api,response,C#,Api,Response,我正在构建一个API来响应GET请求。一个字段是一个对象,它需要使用数据重复查询返回的次数 有谁能给我举个例子,说明如何在c#的响应中使用对象吗?还需要创建类吗 提前谢谢 加: 到目前为止,我的结构如下: public class root { public int model { get; set; } public string lang { get; set; } public part[] parts { get; set; } } public class part { public

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

有谁能给我举个例子,说明如何在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”:“有6位”}]}

但我需要它

{“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/type2”,“desc”:“has 7 bits”}}

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


有人能帮我找出哪里出了问题吗?

所以,如果我理解正确,您希望“零件类型”能够有许多零件?在当前代码中,零件类型对象只能有一个

你需要两件事: 1.作为集合的数据类型,以及 2.以您想要的方式写入该数据类型的序列化程序。 例如,您可以使用字典(System.Collections.Generic.Dictionary)

我想这就是你想要的。。。但是,使用DataContractJsonSerializer(System.Runtime.Serialization.Json.DataContractJsonSerializer),我得到以下结果:

{
  "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如何处理其他集合(例如列表、KeyValuePairs等),因此如果您正在使用它,您可能需要进行实验。

既然您正在构建此
API
,您能展示您迄今为止的成果吗。。?也许一个代码示例可以帮助其他人引导您走上正确的方向谢谢您的回答,有没有其他方法可以做到这一点而不必将其放入数组中?因为他们指定在数组操作符中不包含它。所以类型不是介于“[”和“]”字符之间。啊,我想我现在更明白了。我编辑了我的答案——当我重新阅读时,我注意到原来的答案有点不准确(我应该说是一个键值对数组)。但是,我希望我的修改对你更有帮助。非常感谢!!我还找到了另一种修复方法,在循环上生成JSON字符串,然后将JSON反序列化为对象。但你的方式要好得多,再次感谢。
mypart.part_types = new Dictionary<string,type>();
mypart.part_types.Add("type 1", type1);
mypart.part_types.Add("type 2", type2);
{
  "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"
        }
      }
    }
  ]
}
{
  "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"} }
      ]
    }
  ]
}