189 8069 5689

C#使用dynamic类型访问JObject对象-创新互联

dynamic是C#里面的动态类型,可在未知类型的情况访问对应的属性,非常灵活和方便。

创新互联公司是一家专业提供城关企业网站建设,专注与成都做网站、成都网站制作、H5开发、小程序制作等业务。10年已为城关众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

使用Json.Net可以把一个Json字符串转换成一个JObject对象,如果有已知强类型,如果有已知对应的强类型,可以直接转成对应的类型。但如果没有,要访问Json里面对应的数据的时候,就显得比较麻烦。我们可以借助DynamicObject来访问对应的属性。

DynamicObject

我们要创建一个动态类,用于访问JObject,代码如下:

public class JObjectAccessor : DynamicObject
{
  JToken obj;

  public JObjectAccessor(JToken obj)
  {
    this.obj = obj;
  }

  public override bool TryGetMember(GetMemberBinder binder, out object result)
  {
    result = null;
      
    if (obj == null) return false;

    var val = obj[binder.Name];

    if (val == null) return false;

    result = Populate(val);

    return true;
  }


  private object Populate(JToken token)
  {
    var jval = token as JValue;
    if (jval != null)
    {
      return jval.Value;
    }
    else if (token.Type == JTokenType.Array)
    {
      var objectAccessors = new List();
      foreach (var item in token as JArray)
      {
        objectAccessors.Add(Populate(item));
      }
      return objectAccessors;
    }
    else
    {
      return new JObjectAccessor(token);
    }
  }
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享标题:C#使用dynamic类型访问JObject对象-创新互联
文章来源:http://cdxtjz.cn/article/ccesod.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。