在类的匿名属性中设置DeserializeObject

问题描述

我有这个:

    public class ComponentData
    {
        public dynamic CdHtml { get; set; }
        public dynamic CdJson { get; set; }
        public dynamic CdSection { get; set; }
        public dynamic CdContainer { get; set; }
        public dynamic CdRow { get; set; }
        public dynamic CdContainerId { get; set; }
        public dynamic CdColsJson { get; set; }
    }

我想用这些值设置ComponentData类,但出现错误:

            var componentData = new ComponentData()
            {

                CdHtml = obj.htmlCD,CdJson = JsonConvert.DeserializeObject<dynamic>(obj.jsonCD),CdContainerId = "SECTION" + obj.CD_Container_Id,CdSection = JsonConvert.DeserializeObject<dynamic>(pc.Build_CDxxxJson("xxx" + obj.CD_Container_Id,"width:" + tlj.width.ToString() + "%;padding-left:30px;padding-right:30px;padding-top:30px;padding-bottom:30px;" + sectionCenterStyle,"section")),CdContainer = JsonConvert.DeserializeObject<dynamic>(pc.Build_CDxxxJson("xxx" + obj.divGUID2,containerStyle,"container")),CdRow = JsonConvert.DeserializeObject<dynamic>(pc.Build_CDxxxJson("xxx" + obj.divGUID3,"","row")),CdColsJson = JsonConvert.DeserializeObject<dynamic>(pc.Build_CDxxxJson(obj.divGUID4,string.Format("col-xs-{0} col-sm-{1} col-md-{2} col-lg-{3} hoversel colregion{4}",bsc.xs,bsc.sm,bsc.md,bsc.lg,obj.divGUID4),bsc.lg))
            };



            return Json(new { componentData = componentData,html = obj.html });

我如何返回带有json对象的此类并使用ajax将其传递回客户端?

解决方法

将代码更改为此:

var componentData = new ComponentData()
{

  CdHtml = obj.htmlCD,CdJson = JsonConvert.DeserializeObject<ExpandoObject>(obj.jsonCD),CdContainerId = "SECTION" + obj.CD_Container_Id,CdSection = JsonConvert.DeserializeObject<ExpandoObject>(pc.Build_CDxxxJson("xxx" + obj.CD_Container_Id,"width:" + tlj.width.ToString() + "%;padding-left:30px;padding-right:30px;padding-top:30px;padding-bottom:30px;" + sectionCenterStyle,"section")),CdContainer = JsonConvert.DeserializeObject<ExpandoObject>(pc.Build_CDxxxJson("xxx" + obj.divGUID2,containerStyle,"container")),CdRow = JsonConvert.DeserializeObject<ExpandoObject>(pc.Build_CDxxxJson("xxx" + obj.divGUID3,"","row")),CdColsJson = JsonConvert.DeserializeObject<ExpandoObject>(pc.Build_CDxxxJson(obj.divGUID4,string.Format("col-xs-{0} col-sm-{1} col-md-{2} col-lg-{3} hoversel colregion{4}",bsc.xs,bsc.sm,bsc.md,bsc.lg,obj.divGUID4),bsc.lg))
};

如果要转换为动态格式,则需要使用ExpandoObject,就像您要用手创建一个一样。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...