2015-04-29 10 views
0

Я хочу преобразовать свои данные в json. Я тоже хочу использовать JSON.NET, потому что я работаю над ASP.net MVC. Я следил за этими двумя ссылками Error during serialization using the JSON JavaScriptSerializer. и Fastest JSON Serializer for .NET released, но я пока не могу это сделать. У меня есть действие, которое вызывает метод класса. Этот метод должен вернуть JSON. Итак, прежде всего, как сериализовать данные и какой тип возврата он должен быть. Это мой фрагмент кода для первого действия, затем класс и метод Json.Как я могу сериализовать свои данные с помощью Json.net?

Самое главное, что я не хочу, чтобы 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; } 
     } 
    } 

так вар Gluc имеет тип IEnumerable (DataBase)


Связанные продолжая вопрос здесь: How to fill database list in series and xAxis objects of HighChart

Помощь Пожалуйста

+0

Если вы хотите получить доступ к полям, используя «.», вам понадобится класс модели со свойствами, которые вы хотите включить в свой JSON. –

+0

@ user2217303 Поместите еще один источник подсказок, чтобы помочь вам. –

+0

Что вы на самом деле хотите вернуть? JSON или объект JsonResult? И какой тип возвращает «глюк»? –

ответ

0

Для возврата JsonResult можно просто обернуть объект с Json() подобным образом

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

Json о сериализации поэтому формат здесь строка, если вам нужно получить доступ поле с, вам необходимо десериализации его к объекту

+0

Но у меня уже есть проверка объекта, пожалуйста, мое обновление типа переменной глюка. Если это так, то в чем преимущество Json? Моя цель - получить данные в форме json для добавления затем в highchart – user2217303

+0

json используется в основном при выполнении ajax-вызовов или с ограничением api. Если вам просто нужно передать модель от контроллера к виду, вам не нужен json, вы можете пройти ienumerable uowzd01

+0

Хорошо, я понимаю вашу точку благодарности. – user2217303

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); 
} 
Смежные вопросы