Я пытаюсь создать фид JSON, чтобы вернуть в Google графики многострочный график с четырьмя сериями.Я изо всех сил пытаюсь сформировать правильный JSON, чтобы вернуться к графикам.
Я использую хранимую процедуру, которая создает длинный список данных, которые мне необходимо отобразить на графике.Я хочу иметь возможность взять длинный список данных, преобразовать его в четыре отдельных ряда данных и отправить обратно на диаграмму в формате JSON.
Моя модель:
public class FoodCountCompare
{
[JsonProperty("Count")]
public int Count { get; set; }
[JsonProperty("Day")]
public string Day { get; set; }
[JsonProperty("Type")]
public string Type { get; set; }
}
Мой SPROC:
SELECT COUNT(P) AS 'Count', DATENAME(DW, fldTimeStamp) AS 'Day', @P AS 'Type' FROM [dbname].[FoodTypes] WHERE Protein = 1 AND fldUserId = ''+ @UserId+'' GROUP BY DATENAME(DW, fldTimeStamp)
UNION ALL
SELECT COUNT(H) AS 'Count', DATENAME(DW, fldTimeStamp) AS 'Day', @H AS 'Type' FROM [dbname].[FoodTypes]WHERE HEC = 1 AND fldUserId = ''+ @UserId+'' GROUP BY DATENAME(DW, fldTimeStamp)
UNION ALL
SELECT COUNT(L) AS 'Count', DATENAME(DW, fldTimeStamp) AS 'Day', @L AS 'Type' FROM [dbname].[FoodTypes]WHERE LEC = 1 AND fldUserId = ''+ @UserId+'' GROUP BY DATENAME(DW, fldTimeStamp)
UNION ALL
SELECT COUNT(O) AS 'Count', DATENAME(DW, fldTimeStamp) AS 'Day', @F AS 'Type' FROM [dbname].[FoodTypes]WHERE OmegaFA = 1 AND fldUserId = ''+ @UserId+'' GROUP BY DATENAME(DW, fldTimeStamp)
В моем коде на C # я создаю четыре отдельных списка, что, я уверен, неверно.Каждый список содержит правильные данные, поэтому эта часть работает.Я пытался поиграться с массивами и сериализацией, но я застрял в том, как это сделать дальше.
[Function(Name = "[dbname].[FoodCountCompare]")]
public List<FoodCountCompare> GetFoodCountCompare(){
string UserId = User.Identity.GetUserId();
var dc = new DataClasses1DataContext();
var x = dc.FoodCountCompare(UserId).ToList();
var Protein = (from a in x where a.Type == "P" select new { a.Count, a.Day, a.Type }).ToList();
var HEC = (from a in x where a.Type == "H" select new { a.Count, a.Day, a.Type }).ToList();
var LEC = (from a in x where a.Type == "L" select new { a.Count, a.Day, a.Type }).ToList();
var F = (from a in x where a.Type == "O" select new { a.Count, a.Day, a.Type }).ToList();
//Add code to create JSON here
JavaScriptSerializer js = new JavaScriptSerializer();
string p = js.Serialize(Protein);
string h = js.Serialize(HEC);
string l = js.Serialize(LEC);
string f = js.Serialize(F);
return something_like_json;
}
public JsonResult FoodCountCompare(){
var items = new List<FoodCountCompare>(GetFoodCountCompare());
return Json(items, JsonRequestBehavior.AllowGet);
}
Для меня вопрос, как вы берете эти данные и превращаете их в JSON, например,вложенный массив или прямой набор данных.