Sie erscheinen mögen, dass Ihre Antwort in einem „Wrapper“ oder „Container“ Klasse wickeln. Angesichts Ihrer aktuellen Klasse und Antwort sieht wie folgt aus:
public class User
{
public string Name { get; set; }
public int Age { get; set; }
}
public User Get(int id)
{
return _userRepository.Find(id);
}
Dann können Sie einfach diese Wrapper-Klasse hinzufügen:
public class UserContainer
{
public User User { get; set; }
}
Und in Ihrem Controller wickeln:
public UserContainer Get(int id)
{
var user = _userRepository.Find(id);
return new UserContainer
{
User = user
}
}
Dadurch wird sehen Sie Ihre Antwort wie folgt aus:
{
"User" :
{
"Name" : "Foo",
"Age" : 42
}
}
Aber beachten Sie, dass diese semantisch nicht notwendig ist. Der Client ruft bereits den Endpunkt /api/user/42
an, sodass er einen Benutzer zurück erwarten würde. Sie müssen das in Ihrem JSON nicht erneut angeben.
Was meinen Sie „um den benutzerdefinierten Namen“? Und das ist nicht JSON. – Utkanos
Muss ich die Antwort in eine Klasse umbrechen, um einen Namen zu erhalten? –
Meinen Sie '{ "User": {...}}' oder tun Sie ungültige JSON absichtlich zurückkehren wollen? Wenn der erste, dann ja, führen Sie einfach eine "Wrapper" oder "Container" -Klasse ein, die eine Eigenschaft enthält: 'public User User {get; einstellen; } '. – CodeCaster