JSONResult to String

70

Ich habe eine JsonResult, die gut funktioniert und JSON von einigen POCOs zurückgibt. Ich möchte den JSON als String in einer Datenbank speichern.

public JsonResult GetJSON()
{
    JsonResult json = new JsonResult
    {
        Data = GetSomPocos()
    }; 
    return json;
}

Ich muss die Antwort prüfen, damit ich sie jsonin einer Datenbank speichern kann . Ich habe Probleme, einen Weg zu finden, um den JSON als String zu erhalten.

Jede Hilfe wird geschätzt.

Dustin Laine
quelle

Antworten:

117

Sie suchen die JavaScriptSerializerKlasse , die intern von JsonResult verwendet wird:

string json = new JavaScriptSerializer().Serialize(jsonResult.Data);
SLaks
quelle
wenn auch nur, um etwas so Einfaches wie das Konvertieren eines Arrays in json zu tun. Diese Methode ist hervorragend. muss nicht für Json.Net gehen
asakura89
30

Sie können auch Json.NET verwenden.

return JsonConvert.SerializeObject(jsonResult.Data);
Padmalochan
quelle
Ich hatte tatsächlich einen Fehler beim Serialisieren mit JavaScriptSerializer und beim Deserialisieren mit JsonConver.DeserializeObject <T> (...). Mit diesem Problem wurde es behoben.
Craastad
Ich habe festgestellt, dass JsonCovert ein genaueres Ergebnis liefert als JS Serializer.
Subrata Sarkar
Ich habe immer die Bibliothek von Newtonsoft (den übergeordneten Namespace von JsonConvert) verwendet, und es hat großartig funktioniert! Dies liegt hauptsächlich daran, dass ich in Webformularen gearbeitet habe, aber selbst jetzt, wo ich MVC4 mag, sehe ich keinen Grund, zu wechseln. . . es sei denn, jemand hat einen Grund, den ich nicht kenne?
Einseitig
-13
json = " { \"success\" : false, \"errors\": { \"text\" : \"绑定登录失败!\" } }";            
return new MemoryStream(Encoding.UTF8.GetBytes(json));
user2129004
quelle