首页

C# 读写json文件数据到UI(通过泛型结构来实现)

c#

2020-9-7

通过System.Web.Script.Serialization库文件操作json的序列化和反序列化

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Web.Script.Serialization;
using System.IO;

namespace prat3
{
    //
    /// <summary>
    /// 定义结构体
    /// </summary>
    public struct Productsinfo
    {
        public string product_ProdName;
        public string product_ProdDate;
        public string product_BatchNo;
        public string product_ExpDate;

    }
    public partial class Form1 : Form
    {
        Productsinfo productinfo;
        List<Productsinfo> list1 = new List<Productsinfo>();
       
        public Form1()
        {
            InitializeComponent();
        }
       

        private void Form1_Load(object sender, EventArgs e)
        {
           
        }
        /// <summary>
        /// //JSON序列化,将List<T>转换为String
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        private String JsonListToString(List<Productsinfo> list)
        {
            
            JavaScriptSerializer Serializerx = new JavaScriptSerializer();
            string changestr = Serializerx.Serialize(list);
            return changestr;
        }
        
        /// <summary>
        ///  将Json数据写入文件系统
        /// </summary>
        /// <param name="filepath"></param>
        /// <param name="writestr"></param>
        private void FileWrite(string filepath, string writestr)
        {
            //写入文件
            FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate);
            StreamWriter sw = new StreamWriter(fs);
            sw.Write(writestr);
            sw.Close();
            fs.Close();
        }
        /// <summary>
        /// 从文件中读取Json数据
        /// </summary>
        /// <param name="filepath"></param>
        /// <returns></returns>
        private string FileRead(string filepath)
        {
            FileStream fs = new FileStream(filepath, FileMode.Open);
            StreamReader sr = new StreamReader(fs);
            string str = sr.ReadToEnd();
            sr.Close();
            fs.Close();
            return str;
        }
       
        /// <summary>
        /// JSON反序列化,将List<T>转换为String
        /// 
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        private List<Productsinfo> StringToJsonList(string str)
        {
            JavaScriptSerializer Serializer = new JavaScriptSerializer();
            List<Productsinfo> listinfo = Serializer.Deserialize<List<Productsinfo>>(str);
            return listinfo;
        }
       /// <summary>
       /// 文件加载
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            string filePath = Properties.Settings.Default.FilePath   "\\ProductsInfo.json";
           string newstr= FileRead(filePath);
            List<Productsinfo> listinfo = StringToJsonList(newstr);
            foreach (var item in listinfo)
            {
                textBox4.Text = item.product_ProdName;
                textBox1.Text = item.product_ProdDate;
                textBox2.Text = item.product_BatchNo;
                textBox3.Text = item.product_ExpDate;
            }
        }
        /// <summary>
        /// 文件保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            productinfo.product_ProdName = textBox4.Text;
            productinfo.product_ProdDate = textBox1.Text;
            productinfo.product_BatchNo = textBox2.Text;
            productinfo.product_ExpDate = textBox3.Text;
            list1.Add(productinfo);
            String str = JsonListToString(list1);
            string filePath = Properties.Settings.Default.FilePath   "\\ProductsInfo.json";
            FileWrite(filePath, str);
            MessageBox.Show("保存成功");
        }
    }



}

资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
新建文件夹/json文件路径默认放在D盘下.txt , 103
新建文件夹/prat3/.vs/prat3/v14/.suo , 3584
新建文件夹/prat3/App.config , 909
新建文件夹/prat3/bin/Debug/prat3.exe , 11264
新建文件夹/prat3/bin/Debug/prat3.exe.config , 909
新建文件夹/prat3/bin/Debug/prat3.pdb , 22016
新建文件夹/prat3/bin/Debug/prat3.vshost.exe , 22696
新建文件夹/prat3/bin/Debug/prat3.vshost.exe.config , 909
新建文件夹/prat3/bin/Debug/prat3.vshost.exe.manifest , 490
新建文件夹/prat3/bin/Debug/test.txt , 122
新建文件夹/prat3/Form1.cs , 4212
新建文件夹/prat3/Form1.Designer.cs , 6687
新建文件夹/prat3/Form1.resx , 5817
新建文件夹/prat3/obj/Debug/DesignTimeResolveAssemblyReferences.cache , 1025
新建文件夹/prat3/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache , 7179
新建文件夹/prat3/obj/Debug/prat3.csproj.FileListAbsolute.txt , 546
新建文件夹/prat3/obj/Debug/prat3.csproj.GenerateResource.Cache , 976
新建文件夹/prat3/obj/Debug/prat3.csprojResolveAssemblyReference.cache , 2542
新建文件夹/prat3/obj/Debug/prat3.exe , 11264
新建文件夹/prat3/obj/Debug/prat3.Form1.resources , 180
新建文件夹/prat3/obj/Debug/prat3.pdb , 22016
新建文件夹/prat3/obj/Debug/prat3.Properties.Resources.resources , 180
新建文件夹/prat3/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs , 0
新建文件夹/prat3/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs , 0
新建文件夹/prat3/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs , 0
新建文件夹/prat3/prat3.csproj , 5219
新建文件夹/prat3/prat3.csproj.user , 479
新建文件夹/prat3/Program.cs , 517
新建文件夹/prat3/Properties/AssemblyInfo.cs , 1318
新建文件夹/prat3/Properties/Resources.Designer.cs , 2823
新建文件夹/prat3/Properties/Resources.resx , 5612
新建文件夹/prat3/Properties/Settings.Designer.cs , 1538
新建文件夹/prat3/Properties/Settings.settings , 412
新建文件夹/prat3/System.Web.Extensions.dll , 1282048
新建文件夹/ProductsInfo.json , 132
没有账号? 忘记密码?

社交账号快速登录