Bauen JSON-Antwort in der Web-API-controller
In ein WebAPI-Projekt, ich habe einen controller, der überprüft den status eines Produktes, basierend auf einem Wert, den der Benutzer eingibt.
Können sagen, Sie geben Sie "123" und die Antwort sollte sein, "status": 1, UND eine Liste von Produkten. Wenn Sie geben Sie "321" "status" ist 0, UND eine Liste von Produkten.
Meine Frage ist, wie Baue ich so ein string korrekt in einem WebAPI controller.
[Route("{value:int}")]
public string GetProducts(int value)
{
var json = "";
var products = db.Products;
if (products.Any())
{
foreach (var s in products)
{
ProductApi product = new ProductApi();
product.Name = s.Name;
json += JsonConvert.SerializeObject(supplier);
}
}
var status = db.Status;
if (status.Any())
{
json += "{status:1}";
}
else
{
json += "{status:0}";
}
return json;
}
public class ProductApi
{
public string Name { get; set; }
}
Außerdem ist diese Ausgabe/Antwort als gültig angesehen?
[
{
"id":1,
"name":"product name"
},
{
"id":2,
"name":"product name 2"
},
{
"id":3,
"name":"product name 3"
}
]
{
"status": 0
}
InformationsquelleAutor der Frage brother | 2016-03-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, hier sind die änderungen für Ihre post:
Ersten, sollten Sie Ihre api-Json zurückgeben standardmäßig, wenn Sie an einem
text/html
Anfrage (ist diese die du suchst?), hinzufügen dieser Zeile in IhrerWebApiConfig
Klasse:Zweite, änderte ich den code, um wieder eine Reale Objekt, Identität Ihrer Antwort:
Methode Körper:
Diese Ergebnisse in dem folgenden Beispiel wird json:
Ich raten Sie nicht, um manuelle Formatierungen für solche Sachen, und verlassen Sie sich auf integrierte und 3rd-party-Bibliotheken. Andernfalls werden Sie neu erfinden, die Dinge, die bereits vorhanden, getestet und bereit zu arbeiten.
InformationsquelleAutor der Antwort Artem S.
Nur als raderick erwähnt, brauchen Sie nicht zu erstellen Sie Ihre eigenen benutzerdefinierte JSON-Infrastruktur.
Und in der API-Aktion, Rückgabe so:
InformationsquelleAutor der Antwort Tamas Ionut