2010-12-31 9 views
62

JsonResult numaralı bir çalışmam var ve bazı POCO'lardan JSON'u iade ediyorum. JSON'u DB'de bir dize olarak kaydetmek istiyorum.JSONDosyaya Dönük Dize

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

Ben tepkisini denetlemek gerekir, bu yüzden bir veritabanına json kurtarmak istiyorum. JSON'u bir ip olarak elde etmenin bir yolunu bulmakta zorlanıyorum.

Herhangi bir yardım için teşekkür ederiz.

cevap

111

Sen JsonResult tarafından dahili olarak kullanılan JavaScriptSerializer class, aradığınız: beklendiği gibi

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

Mükemmel kullanabilirsiniz, aynen çalıştı. –

+0

yalnızca diziyi json'a dönüştürmek kadar basit bir şey yapmak için. Bu yöntem mükemmel. Json.Net – asakura89

23

Ayrıca Json.NET.

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

için gerek yok Aslında JavaScriptSerializer ile seri hale getirme ve JsonConver.DeserializeObject (...) ile seri hale getirme konusunda bir hata oluştu. Bunu kullanarak bunu düzeltildi. – craastad

+0

JsonCovert'ın JS serializer'dan daha doğru sonuç döndürdüğünü fark ettim. –

+0

Her zaman Newtonsoft'un kütüphanesini (JsonConvert üst isim alanı) kullandım ve harika çalıştı! Bu çoğunlukla web formlarında çalışıyorum, ama yine de, şimdi MVC4'e girdiğim için geçiş yapmak için bir sebep göremiyorum. . . Birinin farkında olduğum bir sebebi olmadığı sürece? – Lopsided

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