Webapi如何将名称命名为json响应,而不是以json开头
我开发了一个asp.NETWebAPI,并使用fiddler对其进行了测试。我得到的答复如下所示: 而不是这个Webapi如何将名称命名为json响应,而不是以json开头,json,asp.net-web-api,fiddler,Json,Asp.net Web Api,Fiddler,我开发了一个asp.NETWebAPI,并使用fiddler对其进行了测试。我得到的答复如下所示: 而不是这个 { "name":"A", "age":"B" } 可以按以下方式进行更改吗 User{ "name":"A", "age":"B" } 但是,我希望使用自定义名称,而不是以JSON开头的响应。有谁能帮助实现这一目标 谢谢您似乎想将您的响应包装在“包装器”或“容器”类中。鉴于您当前的类别和响应如下所示: public class User { pub
{
"name":"A",
"age":"B"
}
可以按以下方式进行更改吗
User{
"name":"A",
"age":"B"
}
但是,我希望使用自定义名称,而不是以JSON开头的响应。有谁能帮助实现这一目标
谢谢您似乎想将您的响应包装在“包装器”或“容器”类中。鉴于您当前的类别和响应如下所示:
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
public User Get(int id)
{
return _userRepository.Find(id);
}
{
"User" :
{
"Name" : "Foo",
"Age" : 42
}
}
然后,您可以简单地添加此包装器类:
public class UserContainer
{
public User User { get; set; }
}
并在控制器中包装它:
public UserContainer Get(int id)
{
var user = _userRepository.Find(id);
return new UserContainer
{
User = user
}
}
这将使您的回答如下所示:
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
public User Get(int id)
{
return _userRepository.Find(id);
}
{
"User" :
{
"Name" : "Foo",
"Age" : 42
}
}
但请注意,这在语义上是不必要的。客户端已经在调用
/api/user/42
端点,因此他们希望用户返回。无需在JSON中再次指出这一点。您所说的“自定义名称”是什么意思?这不是JSON。我是否需要将响应封装在类中以获得名称?您是指{“User”:{…}}
还是有意返回无效的JSON?如果是前者,那么是的,只需引入一个包含一个属性的“包装器”或“容器”类:公共用户{get;set;}
。是的,它与前者类似。好的,我会介绍一个包装或集装箱来招待你。如果以数组形式返回用户,我想我可以使用。在这种情况下,除了其他属性之外,我是否可以排除此用户名以排除camelcase事件?您可以使用[JsonProperty]
重命名属性,并且也不需要数组的包装器;只需返回一个IEnumerable
。确定。再次感谢你。