• 使用 dynamic 标记解析JSON字符串


    1 string jsonStr = "{"data": {"ssoToken": "70abd3d8a6654ff189c482fc4842468c","account":"admin","userType":"platformAdmin","realName": "超级管理员","sex": 0,"sexName":"男","email":"alina_dong@163.com","mobile":"15120757948","createdDt": "2013-08-16 00:00:00","updatedDt": "2014-12-10 00:00:00" },"isSuccess": true}"; 

    当 .Net 程序接收到了这段JSON字符串数据的时候,大家肯定会想到使用 Newtonsoft.Json 去序列化(SerializeObject)和反序列化(DeserializeObject)一个对象。

    使用 SerializeObject 的示例:

     1 A a = new A();
     2 a.age = 11;
     3 a.name = "Jack";
     4 B b = new B();
     5 b.sex = "Man";
     6 //b.money = 12;
     7 a.B = b;
     8 string str = Newtonsoft.Json.JsonConvert.SerializeObject(a);
     9 
    10 输出结果:{"age": 11, "name": "Jack", "B": {"sex": "Man", "money": ""}}

    使用 DeserializeObject 的示例:

    1 string jsonStr = @"{"age": 11, "name": "Jack", "B": {"sex": "Man", "money": ""}}";
    2 var a = Newtonsoft.Json.JsonConvert.DeserializeObject<A>(jsonStr);
    3 
    4 结果:a.age = 11;.......

    好了,言归正传,如何使用 dynamic 去解析一个Json字符串呢?

    1 string jsonStr = "{"data": {"ssoToken": "70abd3d8a6654ff189c482fc4842468c","account":"admin","userType":"platformAdmin","realName": "超级管理员","sex": 0,"sexName":"男","email":"alina_dong@163.com","mobile":"15120757948","createdDt": "2013-08-16 00:00:00","updatedDt": "2014-12-10 00:00:00" },"isSuccess": true}"; 
    2 var loginInfo = JsonConvert.DeserializeObject<dynamic>(jsonStr); 
    3 var user = loginInfo.data;
    4 string ssoToken = user.ssoToken;
    5 string account = user.account;

    这样,不用创建loginInfo,user照样能解析JSON,而且不会因为那边增加字段报错啦。

    陶陶的兔二,与你分享...

  • 相关阅读:
    向IPython Notebook中导入.py文件
    python--时间日期
    python--条件和循环
    python--输入输出
    python--字符串
    python--内置函数
    python--异常
    python--模块
    python--数据结构
    pybrain
  • 原文地址:https://www.cnblogs.com/taotaodetuer/p/4171327.html
Copyright © 2020-2023  润新知