首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在API响应中使用对象

在API响应中使用对象
EN

Stack Overflow用户
提问于 2013-07-24 07:31:26
回答 1查看 500关注 0票数 0

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

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

提前谢谢。

添加:

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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; }
}

返回的响应是

{“en_US”:4,"lang“:"en_US","parts”:{ "id“:1545,"name”:"Part 1","part_types“:{ "url”:"part.com/type1","desc“:”有6位“}

但我需要它就像

{“型号”:4,"lang“:"en_US",”部件“:{ "id”:1545,“名称”:“部件1","part_types”:{“类型1”:{ "url“:”Part.com/类型1“,"desc”:“有6位”},“类型2”:{ "url“:”部件.com/类型2“,"desc“:”有7位。“}}}

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

有没有人能帮我找出问题所在?

EN

回答 1

Stack Overflow用户

发布于 2013-07-25 19:33:54

那么,如果我理解正确的话,您希望"part_types“能够包含多个部分吗?在您当前的代码中,一个part_types对象只能有一个。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public Dictionary<string,type> part_types { get; set; }

因此,假设您已经创建了对象type1和type2,您可以这样写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mypart.part_types = new Dictionary<string,type>();
mypart.part_types.Add("type 1", type1);
mypart.part_types.Add("type 2", type2);

现在会发生什么取决于序列化程序。我通常使用Json.NET,它工作得很好,而且是免费的。我设置我的对象和你的一样,但是使用字典,然后我得到:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "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.DataContractJsonSerializer),时,我会得到以下结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "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等)。因此,如果您正在使用它,您可能需要进行实验。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17827821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文