C# 读取json格式文件

news2024/10/7 2:18:35

读取json格式文件

安装 Newtonsoft.Json 程序集

1. 选择界面下方的【程序包管理器控制台】页面,输入安装指令

Install-Package Newtonsoft.Json

  2. 安装完成后,请确保在代码文件的顶部包含以下 using 指令:

using Newtonsoft.Json;

创建读取Json文件的类

建立一个ReadJson.cs文件,内容如下:

using System.Collections.Generic;


namespace SplashScreen
{        internal class ReadJson
        {
            public List<int> y1_value { get; set; }
            public List<int> y2_value { get; set; }
            public List<int> y3_value { get; set; }
            public List<int> y4_value { get; set; }
            public List<int> y5_value { get; set; }
            public List<int> y6_value { get; set; }
            public List<int> y7_value { get; set; }
            public List<int> y8_value { get; set; }
            public List<int> y9_value { get; set; }       
    }
}

新建GUI界面

添加一个按钮和一个ListBox控件

 在Form1.cs中添加如下代码:

设置全局变量:

List<int> y1_value = new List<int>();
List<int> y2_value = new List<int>();
List<int> y3_value = new List<int>();
List<int> y4_value = new List<int>();
List<int> y5_value = new List<int>();
List<int> y6_value = new List<int>();
List<int> y7_value = new List<int>();
List<int> y8_value = new List<int>();
List<int> y9_value = new List<int>();

读取文件按钮点击事件

private void read_json_Click(object sender, EventArgs e)
{
      string fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Y_value.json");

      ReadJsonFile(fileName);
}

读取文件函数

private void ReadJsonFile(string fileName)
{
     if (File.Exists(fileName))
     {
         string json = File.ReadAllText(fileName);
         ReadJson data = JsonConvert.DeserializeObject<ReadJson>(json);
         listBox1.Items.Add(AppDomain.CurrentDomain.BaseDirectory);

         this.y1_value = data.y1_value;
         this.y2_value = data.y2_value;
         this.y3_value = data.y3_value;
         this.y4_value = data.y4_value;
         this.y5_value = data.y5_value;
         this.y6_value = data.y6_value;
         this.y7_value = data.y7_value;
         this.y8_value = data.y8_value;
         this.y9_value = data.y9_value;

         List<List<int>> yValues = new List<List<int>>()
         {
               y1_value, y2_value, y3_value, y4_value, y5_value,
               y6_value, y7_value, y8_value, y9_value
         };

         for (int i = 0; i < yValues.Count; i++)
         {
              string prefix = $"y{i + 1}";

              string line = string.Join(" ", yValues[i]);
              listBox1.Items.Add($"{prefix}: {line}");
         }
     }
}

制作一个模拟的启动界面

新建一个Form,命名为SplashScreen。

不显示任务栏图标

程序置于屏幕中央

取消窗体边框

 设置窗体尺寸,可以设为与图片尺寸相同,也可以设置图片的显示方式

 添加图片框控件,并设置布局Dock为填充 

添加资源文件

选中项目,右键选择属性

属性窗口中选择资源那一栏,选择图像,添加资源——>添加现有文件

图片控件导入图片

在界面下方添加一个Panel控件,设置Dock属性为Bottom

 再添加一个Panel控件,放在Panel1控件里面,左侧

设置两个Panel的背景颜色

 添加一个定时器控件

 添加定时器的响应事件代码

private void timer1_Tick(object sender, EventArgs e)
{
     panel2.Width += 5;
     if (panel2.Width >= panel1.Width)
     {
          timer1.Stop();   
          this.DialogResult = DialogResult.OK;
          this.Close();
     }
}

 启动界面加载完成后加载主程序界面

方法一:Program.cs中添加如下代码:

SplashScreen splashScreen = new SplashScreen();
if(splashScreen.ShowDialog() == DialogResult.OK)
{
      Application.Run(new Form1());
}
else
      Application.Exit();

 方法二:

using System;
using System.Windows.Forms;

namespace SplashScreen
{
    public partial class SplashScreen : Form
    {
        private Form1 form1;

        public SplashScreen()
        {
            InitializeComponent();
            form1 = new Form1();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            panel_progressbar.Width += 5;
            if (panel_progressbar.Width >= panel_contant.Width)
            {
                timer1.Stop();
                this.Hide();
                form1.ShowDialog();
                this.Close();
            }
        }

        private void SplashScreen_Load(object sender, EventArgs e)
        {
            timer1.Start();
        }
    }
    
}

 方法二:

启动界面代码如下:

using System;
using System.Windows.Forms;

namespace SplashScreen
{
    public partial class SplashScreen1 : Form
    {
        private Form1 form1;
        public SplashScreen1()
        {
            InitializeComponent();
            form1 = new Form1();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            panel2.Width += 5;
            if (panel2.Width >= panel1.Width)
            {
                timer1.Stop();
                this.Hide();
                form1.ShowDialog();
                this.Close();
            }
        }

        private void SplashScreen_Load(object sender, EventArgs e)
        {
            timer1.Start();
        }
    }
}

 Program.cs中代码

参考:C# Winform 现代化扁平化启动界面设计——自定义进度条

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/593329.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GCC如何生成并调用静态库

一&#xff0c;简介 本文主要介绍如何使用gcc编译代码生成静态库&#xff0c;并调用静态库运行的操作步骤。 二&#xff0c;准备工作 使用add.c和main.c生成test可行性文件的流程图&#xff1a; add.c文件的内容&#xff1a; #include "add.h"int add(int a, i…

自学网络安全, 一般人我劝你还是算了吧

前言&#xff1a;自学我劝你还是算了&#xff0c;我为什么要劝你放弃我自己却不放弃呢&#xff1f;因为我不是一般人。。。 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 …

【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

前言 前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入&#xff0c;我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段&#xff0c;需要在每个版本中&#xff0c;对某些新增接口进行性能测试&#xff0c;有时还需要在一天中的不同时段分别进行…

计算如何与实验结合发Science

理论计算与实验结合的研究已经成为TOP期刊中的主流方式。近日&#xff0c;上海交通大学种丽娜副教授一项关于质子交换膜水解槽阳极催化剂的研究成果在Science发表。该工作报道了一种由沸石甲基咪唑酯骨架&#xff08;Co-ZIF&#xff09;衍生并通过静电纺丝处理的镧和锰共掺杂的…

Python 修复共享内存问题和锁定共享资源问题

文章目录 使用 multiprocessing.Array() 在 Python 中使用共享内存解决多进程之间共享数据问题的解决方案 使用 multiprocessing.Lock() 锁定 Python 中的共享资源 本篇文章解释了多处理共享内存的不同方面&#xff0c;并演示了如何使用共享内存解决问题。 我们还将学习如何使用…

Axure教程—图片手风琴效果

本文将教大家如何用AXURE制作图片手风琴效果 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://6nvnfm.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87847313?spm1001.2014.3001.5501 二、功能介绍 图片自动播放为手风…

MT4交易外汇平台有哪些优势?为何是外汇投资首选?

外汇市场上存在着各种各样的外汇交易商&#xff0c;但是很多的外汇交易商所选择的交易平台都是MT4交易外汇平台。作为全世界范围内使用最为广泛的交易平台&#xff0c;MT4交易外汇平台具有哪些优势&#xff0c;能够让外汇交易商和外汇投资者都选择使用。本文就来具体的聊聊&…

SQL中not in的一个坑

因not in 效率较低&#xff0c;在工作用一只用left join代替&#xff0c;在某一次查询使用了not in发现&#xff0c;结果为空&#xff0c;sql大致如下 select id from table1 where id not in (select id from table2)经过查询发现select id from table2里面的id有null值导致该…

司法大数据解决方案

2018年11月26日&#xff0c;司法部制定了《智慧监狱技术规范SFT0028-2018》并于2019年1月1日正式颁布实施&#xff0c;要求智慧监狱的建设应者眼于监狱工作实际&#xff0c;将物联网、云计算、大数据、人工智能等新一信息技术与监狱各项业务深度融合&#xff0c;形成标准规范科…

论文解读 | 基于改进点对特征的点云6D姿态估计

原创 | 文 BFT机器人 01 摘要 点对特征(PPF)方法已被证明是一种有效的杂波和遮挡下的姿态估计方法。 文章的改进方法主要包括: (1)一种基于奇偶规则求解封闭几何的法向的方法; (2)通过将体素网格划分为等效角度单元的有效降采样方法; (3)基于拟合点的验证步骤。在真实杂波数据集…

如何挖掘360下拉词,怎么删除360下拉负面词

大多数人的手机或者电脑上都安装了360浏览器&#xff0c;360搜索APP等&#xff0c;安装的用户量大&#xff0c;自然使用的用户也就多了&#xff0c;360下拉的优势就展现出来了&#xff0c;展示量大&#xff0c;全国各地均可见&#xff1b;能够引流来的都是相对精准的目标用户&a…

C#简单数据结构类和常用泛型结构类

文章目录 1.简单数据结构类&#xff08;1&#xff09;动态数组Arraylist&#xff08;2&#xff09;栈Stack&#xff08;3&#xff09;队列Queue&#xff08;4&#xff09;哈希表Hashtable 2.泛型3.常用泛型数据结构类&#xff08;1&#xff09;列表List&#xff08;2&#xff0…

高完整性系统:Fault Tolerant Design

目录 1. INTRODUCTION TO FAULT TOLERANCE 1.2 Definitions 1.3 Two Kinds of Faults 1.4 Hardware vs Software Faults 1.4.1 Failure Curve for Hardware 1.4.2 Hardware and Software Failures 1.5 Causes of Failures 1.6 3 Ways to Class Failures 1.6.1 Tempora…

Java 岗史上最全八股文面试真题汇总,堪称 2023 年面试天花板

前言 现如今&#xff0c;Java 面试的本质就是八股文&#xff0c;把八股文面试题背好&#xff0c;面试才有可能表现好。金九银十招聘黄金季已经来临&#xff01;大家在考研和找工作中纠结的时候&#xff0c;不妨先看一下面试题&#xff0c;毕竟我们的最终目标就是为了找一份心仪…

机器视觉怎么对陶瓷板外观尺寸进行自动检测?

随着陶瓷行业的发展&#xff0c;陶瓷板的生产和质量控制面临越来越高的要求。而机器视觉技术作为一种高精度、高效率、无损、可靠性高的自动化检测手段&#xff0c;已经成为陶瓷板外观尺寸自动化检测的首选方案。本文就如何利用机器视觉对陶瓷板外观尺寸进行自动检测进行分析和…

配电室的管理制度及综合监控系统的介绍

安科瑞虞佳豪 1、配电室全部机电设备&#xff0c;由配电室人员负责管理和值班&#xff0c;停送电由值班电工操作&#xff0c;非值班电工禁止操作&#xff0c;无关人员禁止进入配电室&#xff1b;公司内有关上级部门因检查工作&#xff0c;必须要进入这些场所时&#xff0c;应由…

【温故而知新】阶段总结!我在技术成长过程中的收获!

时间&#xff1a;2023年05月31日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 【20230531】【温故而知新】阶段总结&#xff01;我在技术成长过程中的收获&#xff01;_小蒋聊技术_免费在线阅读收听下载 - 喜马拉雅手机版欢迎…

第十八章行为性模式—观察者模式

文章目录 观察者模式解决的问题结构实例存在的问题使用场景 JDK 提供的实现 - Observable示例 行为型模式用于描述程序在运行时复杂的流程控制&#xff0c;即描述多个类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务&#xff0c;它涉及算法与对象间职责的分配。行…

WMI系列--WMI订阅事件

前边对于WMI的基础内容进行简单的总结和整理&#xff0c;结下来的这篇内容主要针对WMI的永久订阅事件展开详细的阐述。 WMI事件订阅机制 WMI事件分为两类&#xff0c;分别是本地事件订阅和永久性事件订阅。 所谓本地事件是指运行在本地上下文环境当中的单个进程的事件&#x…

入门编程的方法和步骤

编程是信息时代必备的一项技能&#xff0c;无论是从事计算机行业的人员&#xff0c;还是从事其他行业的人员&#xff0c;学会编程对个人职业发展都有着重要的意义。但是&#xff0c;对于初学者来说&#xff0c;如何入门编程往往是一个比较棘手的问题。本文将介绍一些入门编程的…