如何编辑json数据运行时?

时间:2011-02-04 07:47:46

标签: asp.net asp.net-mvc json edit

我想在我的asp.net mvc应用程序中将数据添加到现有生成的json数据中,我该怎么办? 意思是,假设我有班级公司将部门列表作为财产。但是json序列化不能支持这种循环引用。所以我想如果,我首先序列化公司对象没有部门列表,然后获得每个公司的部门,然后序列化这个列表并将数据附加到公司序列化数据。我知道这可能是错误的方式。但我必须做因为时间最后通..请指导。

1 个答案:

答案 0 :(得分:1)

您可以定义一个视图模型,您将不会有任何循环引用:

public class DepartmentViewModel
{
    public string DepartmentName { get; set; }
}

public class CompanyViewModel
{
    public IEnumerable<DepartmentViewModel> Departments { get; set; }
}

然后您将在模型和视图模型之间进行映射(您可以使用AutoMapper)并最终将视图模型返回到视图。

例如:

public ActionResult Index()
{
    var companies = _repository.GetCompanies();
    var companiesVM = Mapper.Map<IEnumerable<Company>, IEnumerable<CompanyViewModel>>(companies);
    return Json(companiesVM, JsonRequestBehavior.AllowGet);
}

现在您不再需要循环引用,并且您将能够成功将视图模型序列化为JSON,并且您只能传递视图所需的信息。