通过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("保存成功");
}
}
}
资源文件列表
新建文件夹/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
