调用第三方接口,返回的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=""?是不可以的,前边加“@”符号即可。