2010-12-31 13 views
62

Mam JsonResult, który działa poprawnie, i zwracając JSON z niektórych POCO. Chcę zapisać JSON jako ciąg w DB.JSONResult to String

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

muszę badania odpowiedzi, więc chcę, aby zapisać json w DB. Mam problem ze znalezieniem sposobu, aby uzyskać JSON jako ciąg znaków.

Każda pomoc jest doceniana.

Odpowiedz

111

Patrzysz na JavaScriptSerializer class, która jest używana wewnętrznie przez JsonResult:

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

idealny, pracował dokładnie tak, jak oczekiwano. –

+0

jeśli tylko zrobić coś tak prostego jak konwersja tablicy do json. ta metoda jest znakomita. nie musi iść na Json.Net – asakura89

23

Można również użyć Json.NET.

return JsonConvert.SerializeObject(jsonResult.Data); 
+0

Naprawdę miałem błąd serializowania z JavaScriptSerializer i deserializację z JsonConver.DeserializeObject (...). Użycie tego rozwiązało problem. – craastad

+0

Zauważyłem, że JsonCovert zwraca dokładniejszy wynik niż serializator JS. –

+0

Zawsze używałem biblioteki Newtonsoft (przestrzeni nazw nadrzędnych JsonConvert) i działa dobrze! Dzieje się tak głównie dlatego, że pracowałem w formularzach sieciowych, ale nawet jeśli teraz, kiedy mam już MVC4, nie widzę powodu, aby się przełączać. . . chyba że ktoś ma powód, którego nie jestem świadomy? – Lopsided

-10
json = " { \"success\" : false, \"errors\": { \"text\" : \"绑定登录失败!\" } }";    
return new MemoryStream(Encoding.UTF8.GetBytes(json));