C# json 转匿名对象及C#关键字的处理

发布时间:2023年12月30日

调用第三方接口,返回的json字符串,为了方便使用转为C#匿名对象:

       /// <summary>
       /// json转为匿名对象
       /// </summary>
       /// <typeparam name="T"></typeparam>
       /// <param name="json"></param>
       /// <param name="anonymousTypeObject"></param>
       /// <returns></returns>
       public static T Json2AnonymousType<T>(string json, T anonymousTypeObject)
       {
           return JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
       }

收到的用户json信息字符串?

 {
    "uid": "654",
    "organName": "测试学校",
    "organCode": "380001",
    "roles": "[131, 492]",
    "organId": "344e22a61",
    "userType": "1",
    "organType": "500",
    "userName": "测试老师",
    "rkxx": [],
    "userId": "teacher"
 }

转换为匿名对象

    var user = Utility.Json2AnonymousType(userJson, new
    {
        uid = "",           // 用户标识
        userId = "",        // 账户名
        userName = "",      // 用户姓名
        organName = "",     // 学校机构名称
        userType = "",      // 用户类型  
        login_phone="",     // 手机号码
        login_email="",     // 邮箱
        grade="",           // 年级名称
        @class=""           // 班级名称
    });

使用:

 Console.WriteLine(user.uid);
 Console.WriteLine(user.userName);
Console.WriteLine(user.@class);

// json中没有的属性获取到为null

注意:对方用户对象中的班级用了?C#关键字?class,直接使用 class=""?是不可以的,前边加“@”符号即可。

文章来源:https://blog.csdn.net/admans/article/details/135303880
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。