如何使用Json.net序列化我的数据?

时间:2015-04-29 06:48:11

标签: c# serialization json.net

我想将数据转换为json。我也想使用JSON.NET,因为我正在使用ASP.net MVC。我已经关注了这两个链接Error during serialization using the JSON JavaScriptSerializer.Fastest JSON Serializer for .NET released,但我还没有做到。 我有一个调用类方法的动作。此方法必须返回JSON。首先,如何序列化数据以及应该返回什么类型的返回。这是我的动作代码片段,然后是Json类和方法。

最重要的是,我不希望Json成为字符串,因为我希望能够使用"来访问其中的字段。"

public ActionResult HighChartAction(int id)
{
   JsonModel j = new JsonModel();
   ??? chartData = j.GetMessagesforChart(id); // What should be the type of chartData for JSON data
}
----------------------    
public class JsonModel
{
    public JsonResult GetMessagesforChart(int id)
    {
          DataRepository _messageRepository = new DataRepository();
          var gluc = _messageRepository.GetAllMessages(id);
          var json = JsonConvert.SerializeObject(gluc); // THIS IS A STRING
          return json; // ERROR BECAUSE I WANT IT A JSONRESULT NOT STRING
     }
}

---------------------
    namespace MonitorUI.Models
    {
        public class DataBase
        {
            public int id { get; set; }

            public DateTime date_time { get; set; }

            public int my_value{ get; set; }
        }
    }

所以var gluc的类型为IEnumerable(DataBase)

此处相关的持续问题:How to fill database list in series and xAxis objects of HighChart

请帮助

2 个答案:

答案 0 :(得分:1)

你的职能:

public JsonResult GetMessagesforChart(int id)
{
      DataRepository _messageRepository = new DataRepository();
      var gluc = _messageRepository.GetAllMessages(id);
      var json = JsonConvert.SerializeObject(gluc); // THIS IS A STRING
      return json; // ERROR BECAUSE I WANT IT A JSONRESULT NOT STRING
 }

使用此功能更新:

public JsonResult GetMessagesforChart(int id)
{
      DataRepository _messageRepository = new DataRepository();
      DataBase gluc = _messageRepository.GetAllMessages(id);
      return JsonConvert.SerializeObject(gluc);
 }

答案 1 :(得分:0)

要返回JsonResult,你可以简单地用Json()包装对象

public JsonResult GetMessagesforChart(int id)
{
    DataRepository _messageRepository = new DataRepository();
    var gluc = _messageRepository.GetAllMessages(id);
    return Json(gluc);
}

Json是关于序列化的,所以这里的格式是字符串,如果你需要使用"。"来访问字段,你需要将它反序列化为对象