Reputation: 2851
I'm attempting to serialize an object as Json. The error returned by the code below is "An instance of type string cannot be assigned to a variable of type JsonResult". Can someone explain what I've done wrong? I thought serialize() accepts an object and that's what I am passing it.
public class SummaryStats
{
public int rating_number { get; set; }
public string rating_label { get; set; }
public string rating_view { get; set; }
public int max_stars { get; set; }
public int star_1_rating { get; set; }
public int star_2_rating { get; set; }
public int star_3_rating { get; set; }
public int star_4_rating { get; set; }
public int star_5_rating { get; set; }
}
public JsonResult GetSummaryStats()
{
SummaryStats stats = new SummaryStats();
stats.star_1_rating = 1;
stats.star_2_rating = 1;
stats.star_3_rating = 1;
stats.star_4_rating = 11;
stats.star_5_rating = 20;
JavaScriptSerializer json = new JavaScriptSerializer();
JsonResult output = json.Serialize(stats);
return output;
}
Upvotes: 2
Views: 5374
Reputation: 10998
Try Serializing your class :
[Serializable()]
public class SummaryStats
{
...
}
Upvotes: 1
Reputation: 38820
Assuming this is within a Controller
derivative, just do:
return Json(stats);
The rest is handled for you.
Upvotes: 5