簡體   English   中英

在結果上使用List <>對象嵌套元素格式返回JSON

[英]Return JSON using List<> Object Nested Element Formatting On Result

我的列表對象是從dbcontext身份模型中提取的線性數據行。 問題是需要返回JSON結構,並將其值包裝在嵌套參數中。 參見示例。 我該如何實現? 子級中的數據不必是定義為單獨的模型類,因為只需要以某種方式在接受javascript客戶端庫的結果中定義數據即可。

以下代碼從控制器的JSON結果返回。

using (var dc = new EntitiesDB.CalendarEntities())
{
  var evt1 = (from e in dc.CalendarEvents(startDate, endDate)
             select new
              {
                 e.EventID,
                 e.Subject,
                 e.startDateRecur,
                 e.startTimeRecur,
         e.Ruletype,
         e.RuleValue                           
}).ToList();

   return Json(evt1.Select(v => new
   {
      id = v.EventID,
      title = v.Subject,
      startRecur = v.startDateRecur,                    
      startTime = v.startTimeRecur,
      ruleType = v.RuleType,
      ruleValue = v.RuleValue
   }), JsonRequestBehavior.AllowGet);


[{
"id":222044,
"title":"Sample Day Recur Event 1",
"startRecur":"1/1/2019",                    
"startTime":"00:12:00",
"ruleType":"Weekly",
"ruleValue" = "True"
},
{
"id":222045,
"title":"Sample Day Recur Event 2",
"startRecur":"1/1/2019",                    
"startTime":"00:15:00",
"ruleType":"Weekly",
"ruleValue" = "True"
}]

我如何使其返回結果,以便可以將某些值放入這樣的結果中的嵌套元素“ rrule”中?

[{
"id":222044,
"title":"Sample Day Recur Event 1",
"startRecur":"1/1/2019",                    
"startTime":"00:12:00",
rrule: { 
         "ruleType":"Weekly",
         "ruleValue" = "True"
       }
},
{
"id":222045,
"title":"Sample Day Recur Event 2",
"startRecur":"1/1/2019",                    
"startTime":"00:15:00",
rrule: { 
         "ruleType":"Weekly",
         "ruleValue" = "True"
       }
}]

rrule使用對象初始化程序語法為rrule設計新的類型,如下所示:

return Json(evt1.Select(v => new
   {
      id = v.EventID,
      title = v.Subject,
      startRecur = v.startDateRecur,                    
      startTime = v.startTimeRecur,
      rrule = new { 
          ruleType = v.RuleType,
          ruleValue = v.RuleValue
      }
   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM