当前位置: 首页 > news >正文

C# 调用接口处理返回json数据

项目中处理json需要使用Newtonsoft,访问接口使用RestSharp,先将这两个库添加项目引用,在文件头部进行引用

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

方式一:按数组解析            

            InfoModel info = new InfoModel();

            string hostV = ins.Host;
            string urlV = ins.Url;
            string stationNameV = ins.StationName;

            var client = new RestClient(hostV);

            string url = hostV + urlV +  stationNameV;
            var request = new RestRequest( url , Method.POST);
            request.AddHeader("Content-Type", "application/json");

            var response = client.Execute(request);

                JObject jo = (JObject)JsonConvert.DeserializeObject(response.Content);
                string success = jo["success"].ToString();
                string msg = jo["msg"].ToString();
                string name = jo["name"].ToString();
                string tempreture = jo["tempreture"].ToString();
                string humidity = jo["humidity"].ToString();
                string inputTime = jo["inputTime"].ToString();

                info.Success = success;
                info.Msg = msg;

                if (info.Success == "true")
                {
                    info.Tempreture = tempreture;
                    // MessageBox.Show(tempreture);
                }
 

方式二:映射转换类

定义类模型InfoModel

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace monitorFlowworkAndSubmit.Model
{
    public class InfoModel
    {
        private string _success;
        private string _msg;
        private string _id;
        private string _stationName ;
        private string _tempreture ;            
        private string _humidity ;
        private string _inputTime;

        public string Success
        {
            get { return _success; }
            set { _success = value; }
        }

        public string Msg
        {
            get { return _msg; }
            set { _msg = value; }
        }

        public string Id
        {
            get { return _id; }
            set { _id = value; }
        }

        public string StationName
        {
            get { return _stationName; }
            set { _stationName = value; }
        }

        public string Tempreture
        {
            get { return _tempreture; }
            set { _tempreture = value; }
        }

        public string Humidity
        {
            get { return _humidity; }
            set { _humidity = value; }
        }

        public string InputTime
        {
            get { return _inputTime; }
            set { _inputTime = value; }
        }
    }
}
 

获取及转换代码

            InfoModel info = new InfoModel();

            string hostV = ins.Host;
            string urlV = ins.Url;
            string stationNameV = ins.StationName;

            var client = new RestClient(hostV);

            string url = hostV + urlV +  stationNameV;
            var request = new RestRequest( url , Method.POST);
            request.AddHeader("Content-Type", "application/json");

            var response = client.Execute(request);

            info = JsonConvert.DeserializeObject<InfoModel>(response.Content);


http://www.mrgr.cn/news/6784.html

相关文章:

  • 设计模式六大原则(一)--单一职责原则
  • UE5-C++入门教程(二)---编写Editor类别的自定义模型实现小球规划路线的可视化
  • (七)Flink Watermark
  • JVM系列--运行时数据区
  • 如何将sqlite3中数据导入到mysql中
  • QT 目录
  • LabVIEW中CANopen Read SDO.vi 和 CANopen Read Write CAN Frame.vi区别
  • 2. Java 中的 List 接口有哪些实现类?
  • 文献阅读:单细胞分辨率下小鼠大脑衰老的分子和空间特征
  • el-table中el-select俩列共用同一数据并且选择不能相同
  • ActiViz实战:ActiViz与VTK的差异踩坑点集合(一)
  • 贪心算法-最大容量问题
  • Java二十三种设计模式-责任链模式(17/23)
  • 无法找到模块“vuex”的声明文件。“../node_modules/vuex/dist/vuex.mjs”隐式拥有 “any“ 类型。
  • 嵌入式智能移动机器人导航系统:状态空间控制算法、路径规划算法、PID控制算法(代码示例)
  • vue mapActions的使用
  • 泛微E9如何更新缓存
  • Adobe Illustrator矢量绘图软件win/mac软件下载安装
  • LeetCode - 315 计算右侧小于当前元素的个数(Java JS Python C C++)
  • Milvus实践(5) ---- 从attu2.4x窥探Milvus数据结构变化及原理