zoukankan      html  css  js  c++  java
  • c# 解析/封装json数据

    解析格式1:

    {
        "code": 200,
        "message": "操作成功",
        "data": {
            "Id": "123456"
        },
        "success": true
    }

    using Newtonsoft.Json.Linq;
    using Newtonsoft.Json;


    public string CreateMessage(string url) { string ret = string.Empty; string consumerId = ""; try { System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url); webReq.Method = "POST"; webReq.ContentType = "application/json"; webReq.Headers.Add("Authorization", "bearer ******"); Stream postData = webReq.GetRequestStream(); postData.Close(); HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse(); StreamReader sr = new StreamReader(webResp.GetResponseStream(), Encoding.UTF8); ret = sr.ReadToEnd();
    //此处解析 JObject jsonObj = JObject.Parse(ret);
    string code = jsonObj["code"].ToString();
    if (code == "200") {
    //拿到ID的值 consumerId = ((JObject)jsonObj["data"])["Id"].ToString(); } } catch (Exception ex) { //LogManager.LogInstance.WriteLog("时间:" + DateTime.Now + "/n 请求出错原因" + ex.ToString()); } return consumerId; }

      解析格式2:

    {
        "code": 200,
        "message": "操作成功",
        "data": [
            {
                "msgId": "123456",
                "msgType": "type1",
                "content": "{"eventId":"20161111","dateTime":"2021-06-17"}"
            },
            {
                "msgId": "456789",
                "msgType": "type2",
                "content": "{"eventId":"20161112","dateTime":"2021-06-17"}"
            }
    ]
    }

     封装格式:

    封装格式:
    
    {
    	"ddCode": "001",
    	"lists": [{
    		"Time": "2021-6-17 18:12:14",
    		"Code": "123456",
    		"Image": "****",
    	}]
    }
    

      

    public string GetWarningData(string consumerId)
            {
                string ret = string.Empty;
                try
                {
                    string nUrl = "https://****/messages?consumerId=" + consumerId + "&autoCommit=true";
                    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                    HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(nUrl);
                    webReq.Method = "POST";
                    webReq.ContentType = "application/json";
                    webReq.Headers.Add("Authorization", "bearer *******");
                    //获取服务端返回
                    HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
                    StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                    ret = sr.ReadToEnd().Trim();
                    JObject jo = (JObject)JsonConvert.DeserializeObject(ret);
                    string code = jo["code"].ToString();
                   
                    #region log日志
                    //存储 拉取数据code值,通道ID,时间
                    warninfoManageservice.SaveLog(code, consumerId);
                    #endregion
                    if (code == "200")
                    {
                        JArray jar = JArray.Parse(jo["data"].ToString());
    //如果封装多条数据,需要将faceobj和lists放在此处
     //FaceMessage faceobj = new FaceMessage();
                        //faceobj.lists = new List<lists>(); for (var i = 0; i < jar.Count; i++) { JObject j = JObject.Parse(jar[i].ToString()); string msgId = j["msgId"].ToString(); JObject con = JObject.Parse(jar[i]["content"].ToString()); string dt = con["dateTime"].ToString();
    //至此解析完成
    //封装数据
    //如果封装多条lists需要将faceobj和lists两个新的对象拿到for循环外面。

                                                         FaceMessage faceobj = new FaceMessage();
                                                         faceobj.lists = new List<lists>();

                                                        faceobj.ddCode = "001";
                                                       lists objlist = new lists(); //实例化JSON数组对象,用于添加JSON数组集合

                                                      objlist.Time =dt;

                                                      objlist.Code ="123456";

    ;                                                faceobj.lists.Add(objlist); //添加JSON数组集合封装完成

                                                     string res = JsonConvert.SerializeObject(faceobj);//转成json数据

                        }
                    }
                    sr.Close();
                }
                catch (Exception ex)
                {
    
                }
                return ret;
            }
    

     创建model

    public class FaceMessage
            {
                public string ddCode{ get; set; }
                public List<lists> lists { get; set; }
            }
            public class lists
            {
                public string Time { get; set; }
                public string Code { get; set; }
                public string Image { get; set; }
            }
    

      

  • 相关阅读:
    Java之this关键字的用法
    JavaSE 之 final 初探
    LinkedList 浅析示例
    HashSet 浅析示例
    ArrayList 浅析示例
    MySQL5.7 修改密码
    IE10 和 Chrome50 对日期 new Date() 支持的区别
    databtables 设置(显示)行号
    团队管理
    财务名称
  • 原文地址:https://www.cnblogs.com/syeacfpl/p/14900327.html
Copyright © 2011-2022 走看看