我想将数据转换为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
请帮助
答案 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是关于序列化的,所以这里的格式是字符串,如果你需要使用"。"来访问字段,你需要将它反序列化为对象