C#从网址上读取json数据

这篇具有很好参考价值的文章主要介绍了C#从网址上读取json数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:从客户给的网址中读取json格式的数据。

找了好多资料,都不太好使,看到了一篇很有帮助的文章。以下大部分内容和这篇找到的文章近似。太不容易了,同时也感谢这篇文章的作者心所欲。

https://www.cnblogs.com/zoujinhua/p/10330066.html

下面总结一下。

在实际开发中,我们经常会使用到API,所谓API一般就是一个地址,我们称之为接口。

然后我们通过c#对这地址发送请求,请求后,服务器就会给我们返回数据,一般是XML或Json格式,这里我们主要讲述的是Json。

这里我们有一个网址:http://cfwincad.cfsuper.com/api/project/opt_1D_InfoDetail?TenantId=14984910843973&ID=923

直接在浏览器上访问这个地址,可以正常访问,可以看到json格式的数据。

C#从网址上读取json数据,优化单转化,工作,c#,c#,json

接下来就是大家最喜欢的代码环节,这里用的winform程序,我们建立了一个窗体程序。点击后,显示Json数据就可以,界面如下:

C#从网址上读取json数据,优化单转化,工作,c#,c#,json

建好窗体,这里放了一个读取Json的按钮,因为字符较多,一般的文本框TextBox显示不全,这里我在工具箱里拖拽了一个richTextBox1来显示Json数据。

然后我们来创建一个类,右键项目名称--添加--类。这里我的类名为Http.cs

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace c_解析json2
{
    public class Http
    {
        //这个类有两个方法,一个是Get,一个是Post,这里只需Get
        public static string Get(string Url)
        {
            //System.GC.Collect();
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Proxy = null;
            request.KeepAlive = false;
            request.Method = "GET";
            request.ContentType = "application/json; charset=UTF-8";
            request.AutomaticDecompression = DecompressionMethods.GZip;

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
            string retString = myStreamReader.ReadToEnd();

            myStreamReader.Close();
            myResponseStream.Close();

            if (response != null)
            {
                response.Close();
            }
            if (request != null)
            {
                request.Abort();
            }

            return retString;
        }

        public static string Post(string Url, string Data, string Referer)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "POST";
            request.Referer = Referer;
            byte[] bytes = Encoding.UTF8.GetBytes(Data);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = bytes.Length;
            Stream myResponseStream = request.GetRequestStream();
            myResponseStream.Write(bytes, 0, bytes.Length);

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            string retString = myStreamReader.ReadToEnd();

            myStreamReader.Close();
            myResponseStream.Close();

            if (response != null)
            {
                response.Close();
            }
            if (request != null)
            {
                request.Abort();
            }
            return retString;
        }


    }

}

这个类有两个方法,一个是Get,一个是Post,这里只需要用到Get。

然后是点击按钮读取Json的方法

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Newtonsoft.Json; // 引入这个库
using System.Net.Http;
using System.Runtime.InteropServices;
using System.Drawing.Text;
using System.Net;
using System.IO;
using System.Collections;
using Newtonsoft.Json.Linq;
using static System.Net.WebRequestMethods;

namespace c_解析json2
{
    public partial class Form1 : Form
    {
        
           

        

        public Form1()
        {
            InitializeComponent();
            
        }

        

            private void button1_Click(object sender, EventArgs e)
        {


            // 使用JsonConvert方法,DeserializeObject 反序列化
            // 为接收到的json数据
            // textBox1.Text为接收到的json数据
            // 反序列化,是由json转为实体类
            // 这个需要引入Newtonsoft.Json这个DLL并using
            // 传入我们的实体类还有需要解析的JSON字符串就可以了。然后
            // 可以通过实体类使用数据了。
            WorkItem cc = JsonConvert.DeserializeObject<WorkItem>(richTextBox1.Text);
            //这样就可以读取JSON数据里面的值
            //textBox1.Text = cc.profiLav;
            MessageBox.Show("profiLav=" + cc.positionX);
            
            //for (int i = 0; i < cc.Count; i++)
            //{
            //    MessageBox.Show("name =" + cc.work[i].name + "\r\n" + cc.work[i].profiLav + "\r\n" + cc.work[i].positionX + "\r\n" + cc.work[i].positionY);
            //}
        }

        // 使用HttpClient类来发送HTTP请求并读取Getman网址中的json数据。
        // 读取Json
        private void button2_Click(object sender, EventArgs e)
        {
            //我们的接口
            string url = "http://cfwincad.cfsuper.com/api/project/opt_1D_InfoDetail?TenantId=14984910843973&ID=923";

            //将接口传入,这个HttpUitls的类,有兴趣可以研究下,也可以直接用就可以,不用管如何实现。
            string getJson = Http.Get(url);

            richTextBox1.Text = getJson;

        }
       

            private void Form1_Load(object sender, EventArgs e)
           {
            



            }




     }
}

点击出现Json数据如下,成功了!

C#从网址上读取json数据,优化单转化,工作,c#,c#,json文章来源地址https://www.toymoban.com/news/detail-823170.html

到了这里,关于C#从网址上读取json数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#读取json文件

    C# 读取 JSON 文件并读取某一个的值可以使用 Newtonsoft.Json 库。假设我们的 JSON 文件如下所示: 要读取其中的某一个的值,首先需要定义一个对应的实体类来存储 JSON 数据。例如,可以定义以下类: 然后,可以使用以下代码读取 JSON 文件,并将其反序列化为 Pers

    2024年02月13日
    浏览(49)
  • python-将excel表格中的数据转化为json数据格式

    excel表格中的数据,转化为json格式,再用程序去处理json数据,是常见的数据处理方式。这样可以实现按照需求去做数据处理。 除了python环境外,主要用到读取excel文件的库,以及json数据格式处理库。 常用的excel库: openpyxl: 可以用来读写Excel文件的库。可以处理.xlsx文件,支

    2024年02月06日
    浏览(51)
  • 【御控物联】 IOT异构数据JSON转化(场景案例一)

    随着物联网、大数据、智能制造技术的不断发展,越来越多的企业正在进行工厂的智能化转型升级。转型升级第一步往往是设备的智能化改造,助力设备数据快速上云,实现设备数据共享和场景互联。然而,在生产过程中会通过多种数据采集方式产生大量的数据,由于设备的

    2024年04月14日
    浏览(39)
  • 读取JSON文件 如何在Unity中读取Json文件中的数据

    Josn是一种轻量级的数据交换格式,JSON能够描述四种简单的类型(字符串、数字、布尔值及null)和两种结构化类型(对象及数组),在Unity里经常用Json来处理大量的字符串,容易解析,效率非常快。 基本结构 1、语法 数据存在键值对中 数据由逗号分隔 花括号保存对象 方括号保存

    2024年02月15日
    浏览(48)
  • 安卓中json数据的读取

    1.1创建assets文件夹 1.创建assests文件夹 直接下一步   1.2创建过程 1.创建json测试文件 2.读取数据 3.效果图 2.1Java模块的创建 1.创建Java程序 默认的名称 生成的程序和原先的模块是并列的关系 2.编写Java程序 2.2Java的设置 1.jdk的设置   2.增加application的运行  3.选中刚刚创建的进行编

    2024年02月07日
    浏览(33)
  • 两种方式读取Json文件 数据

    首先下载LitJson.dll 文件,并将其拖入 Unity项目中的 的 Assets/Plugins目录中 其次在你的Unity项目中创建好Assets/StreamingAssets文件夹,用于存放文件 功能:将数据写入到文件中(可自由扩充),在程序运行时获取指定对象(这里 根据指定id 获取其对象数据)。 json文件中的数据参数

    2024年02月12日
    浏览(43)
  • qt学习:json数据文件读取写入

    目录 什么是json 基本格式 例子  解析json文件数据到界面上 组合json数据文档对象 json是一种轻量级的数据交互格式,简单来说,json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互 以键值对的形式存放 键-----字符串 值------基本数据类型,字

    2024年01月24日
    浏览(45)
  • Mybatis读取和存储json类型的数据

    不管数据库当中是以json还是longtext数据类型来存json,都可以在mybatis当中使用string来接数据。这一点毋庸置疑!但是想要使用JSONObject类型的字段来取值是否可以呢? 接下来我们来测试一下,我用的是mybatis-plus框架,mybatis-plus和mybatis是一样的,无非就是mybatis-plus封装好了一些

    2024年02月02日
    浏览(31)
  • Java中JSON数据的读取和解析

            在做springboot项目时用到了json文件读取和解析,所以在这里记录一下学习过程中总结的一些点,希望对大家有帮助~ 配置fastJson 构建工具类(方便多次调用时重复使用) json文件示例(以geojson为例,数据结构比较复杂,只是层次比较多) 调用工具类读取数据: 读取

    2024年02月12日
    浏览(52)
  • Python 读取 JSON 数据的骚操作

    你想读写 JSON(JavaScript Object Notation) 编码格式的数据。 json 模块提供了一种很简单的方式来编码和解码 JSON 数据。 其中两个主要的函 数是 json.dumps() 和 json.loads() 下面演示如何将一个 Python 数据结构转换为 JSON 下面演示如何将一个 JSON 编码的字符串转换回一个 Python 数据结构:

    2023年04月23日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包