代码之家  ›  专栏  ›  技术社区  ›  Alexander

从实体框架缩进JSON

  •  0
  • Alexander  · 技术社区  · 13 年前

    在过去的几天里,我一直在尝试阅读和测试各种方法,以获取实体框架中实体中的属性(列),并从中检索平均值,然后将其传递给JSON。我曾经接近过几次,但总是失败。最后,当我有JSON时,我想以缩进格式返回它,以便在JQuery可视化库中使用。

    我的控制器在这里:

        public virtual JsonResult GetData()
        {
            var result = new FactSurveryResultsQueries().GetAverages();
            return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = result };
        }
    

    这是我的视图模型:

    namespace Provider.Models
    {
        public class FactSurveyResultsViewModel //: BaseGraphViewModel
        {
            public FactSurveyResultsViewModel() { }
            //public List<KPIUserControl> customerSatisfactionChart = new List<KPIUserControl>();
            ////public List<string> customerSatisfactionChart = new List<string>();
            //public Dictionary<string, decimal> a { get; set; }
            public double? EaseRequestingHelp { get; set; }
            public double? TimeReachQualifiedTech { get; set; }
            public double? TimeProvideSolution { get; set; }
            public double? CompletenessOfSolution { get; set; }
            public double? TechAbilityProdKnowledge { get; set; }
            public double? HowWellKeptInformed { get; set; }
            public double? OverallServiceOpinion { get; set; }
    
        }
    }
    

    最后,这是我当前的迭代,只检索一个属性并对其进行平均,尽管它当前为空。

    namespace Provider.Queries
    {
        public class FactSurveryResultsQueries
        {
            public FactSurveyResultsViewModel GetAverages()
            {
                var result = new FactSurveyResultsViewModel();
                using (var db = new ATSNavigatorDBEntities())
                {
                    var thing =
                        from p in db.Fact_SurveyResults
                        group p by 1 into a
                        select new FactSurveyResultsViewModel { EaseRequestingHelp = a.Average(p.EaseRequestingHelp)};
                }
                return result;
            }
        }
    }
    

    有人能告诉我检索一个属性,并将其作为缩进的JSON从我的控制器中访问,这样我就可以使用它,然后我可以将其复制到其他属性中吗?谢谢

    1 回复  |  直到 13 年前
        1
  •  1
  •   Umar Farooq Khawaja    13 年前

    您可以使用Json.NET将.NET对象序列化为Json。它有一个格式化选项,可以生成缩进的JSON。

    您可以在Visual Studio中通过NuGet安装Json.NET。安装后,您可以通过 JsonConvert.SerializeObject() 方法