json序列化:
using (var db = new Model1())
{
var result = db.Classes.Select(item => new { CID = item.CID, ClassID = item.ClassID, ClassTeacherName = item.ClassTeacherName, GradeID = item.GradeID });
//将查询结果转换为Json字符串
string jsonStr=JsonConvert.SerializeObject(result);
Console.WriteLine(jsonStr);
Console.ReadKey();
}
结果:
json反序列化:
//json字符串转换为json对象
var jsonObject=JsonConvert.DeserializeObject<BoxInfo>(jsonStr);
简单示例:点击按钮,将输入框的数据以json格式传入文本文件,以后程序加载时输入框自动读取文本文件的值。
private void button1_Click(object sender, EventArgs e)
{
var box = new BoxInfo();
//将输入控件的值导入类属性
box.BarCode = textBox2.Text;
box.BoxType = (int)System.Enum.Parse(typeof(Enum.BoxType), comboBox1.Text);
box.BoxStatus= (int)System.Enum.Parse(typeof(Enum.BoxStatus), comboBox2.Text);
//json序列化
string str=JsonConvert.SerializeObject(box);
//将json字符串写入文本文件
using (FileStream fileStream = new FileStream(@"C:\Users\HOU\Desktop\1.txt", FileMode.OpenOrCreate))
{
StreamWriter streamWriter = new StreamWriter(fileStream);
streamWriter.WriteLine(str);
streamWriter.Close();
}
}
private void MainForm_Load(object sender, EventArgs e)
{
//初始化下拉列表框
var boxlist1 = System.Enum.GetNames(typeof(Enum.BoxType));
comboBox1.DataSource = boxlist1;
comboBox1.SelectedIndex = -1;
var boxlist2 = System.Enum.GetNames(typeof(Enum.BoxStatus));
comboBox2.DataSource = boxlist2;
comboBox2.SelectedIndex = -1;
//将文本文件内容导入输入框
using (FileStream fileStream = new FileStream(@"C:\Users\侯松\Desktop\1.txt", FileMode.OpenOrCreate))
{
StreamReader streamReader = new StreamReader(fileStream);
string jsonStr= streamReader.ReadToEnd();
var jsonObject=JsonConvert.DeserializeObject<BoxInfo>(jsonStr);
textBox2.Text = jsonObject.BarCode;
comboBox1.SelectedText = System.Enum.GetName(typeof(Enum.BoxType), System.Enum.ToObject(typeof(Enum.BoxType), jsonObject.BoxType));
comboBox2.SelectedText= System.Enum.GetName(typeof(Enum.BoxStatus), System.Enum.ToObject(typeof(Enum.BoxStatus), jsonObject.BoxStatus));
streamReader.Close();
}
}