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.

Antworten:


117

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

string json = new JavaScriptSerializer().Serialize(jsonResult.Data);

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);

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));
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.