2010-12-31 19 views
62

Tôi có một số JsonResult hoạt động tốt và trả về JSON từ một số POCO. Tôi muốn lưu JSON dưới dạng chuỗi trong DB.JSONResult vào chuỗi

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

Tôi cần kiểm tra phản hồi, vì vậy tôi muốn lưu json vào DB. Tôi gặp khó khăn khi tìm cách để nhận JSON dưới dạng chuỗi.

Mọi trợ giúp đều được đánh giá cao.

Trả lời

111

Bạn đang tìm kiếm JavaScriptSerializer class, được sử dụng trong nội bộ bởi JsonResult:

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

Hoàn hảo, làm việc chính xác như mong đợi. –

+0

nếu chỉ làm một cái gì đó đơn giản như chuyển đổi mảng thành json. phương pháp này là tuyệt vời. không cần phải đi cho Json.Net – asakura89

23

Bạn cũng có thể sử dụng Json.NET.

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

Tôi thực sự đã có một lỗi serializing với JavaScriptSerializer và deserializing với JsonConver.DeserializeObject (...). Sử dụng nó cố định. – craastad

+0

Tôi nhận thấy rằng JsonCovert trả về kết quả chính xác hơn so với bộ nối tiếp JS. –

+0

Tôi đã luôn sử dụng thư viện Newtonsoft (không gian tên cha mẹ của JsonConvert) và nó đã hoạt động rất tốt! Điều này chủ yếu chỉ vì tôi đã làm việc trong các biểu mẫu web, nhưng thậm chí vẫn còn, bây giờ tôi vào MVC4, tôi thấy không có lý do để chuyển đổi. . . trừ khi ai đó có lý do mà tôi không biết? – Lopsided

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