我开发了一个asp.net webapi并使用fiddler对其进行测试。我得到的回复如下所示:
而不是这个
{
"name":"A",
"age":"B"
}
可以改变如下吗?
User{
"name":"A",
"age":"B"
}
但是不是以JSON开头的响应,我想拥有自定义名称。任何人都可以帮助如何实现这一目标吗?
由于
答案 0 :(得分:2)
您似乎希望将回复包装在"包装中"或"容器"类。鉴于您当前的课程和响应如下:
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
public User Get(int id)
{
return _userRepository.Find(id);
}
然后你可以简单地添加这个包装类:
public class UserContainer
{
public User User { get; set; }
}
在你的控制器中包装它:
public UserContainer Get(int id)
{
var user = _userRepository.Find(id);
return new UserContainer
{
User = user
}
}
这会使您的回复看起来像这样:
{
"User" :
{
"Name" : "Foo",
"Age" : 42
}
}
但请注意,这在语义上是不必要的。客户端已经在调用/api/user/42
端点,因此他们希望用户返回。没有必要再次在您的JSON中指明。