c#处理json数据

以前写过一个很水的,留下了两个参考网站。其实我也只是为了自己以后查资料方便才那样做的,这次不水,直接贴代码,我看到了一堆注释,头晕。。。

注意:别忘了使用nuget程序包管理器安装newtonsoft.json插件。

代码如下:

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;


namespace Study
{
    public partial class JSONTest : Form
    {
        public JSONTest()
        {
            InitializeComponent();
        }
            

        private void button1_Click(object sender, EventArgs e)
        {
            //引用Newtonsoft.Json库
            //解析JSON数据
            //普通JSON数据
            //string str = "{'city':'北','cityid':'101010100'}";
            //JObject jo = (JObject)JsonConvert.DeserializeObject(str);
            //string zone = jo["cityid"].ToString();
            //MessageBox.Show((zone));

            //嵌套JSON数据
            //string str = "{'weatherinfo':{'city':'北','cityid':'101010100'}}";
            //JObject jo = (JObject)JsonConvert.DeserializeObject(str);
            //string zone = jo["weatherinfo"]["city"].ToString();
            //MessageBox.Show((zone));

            //数组型数据
            //string jsonArrayText1 = "[{'Name':'Tom','Age':'16'},{'Name':'Mary','Age':'15'}]";
            //JArray ja = (JArray)JsonConvert.DeserializeObject(jsonArrayText1);
            //string name1 = ja[1]["Name"].ToString();
            //richTextBox1.Text = name1;

            //生成JSON数据
            //输出{"Name":"Jack","Age":"26"}
            //StringWriter sw = new StringWriter();
            //JsonWriter writer = new JsonTextWriter(sw);
            //writer.WriteStartObject();
            //writer.WritePropertyName("Name");
            //writer.WriteValue("Jack");
            //writer.WritePropertyName("Age");
            //writer.WriteValue("26");
            //writer.WriteEndObject();
            //writer.Flush();
            //string jsonText = sw.GetStringBuilder().ToString();
            //richTextBox1.Text = jsonText;

            //Student类进行序列化(生成JSON数据)和反序列化(解析)。

            //1.生成普通JSON数据
            //Student stu = new Student() { Name = "Jack", Age = 20 };
            //JsonSerializer serializer = new JsonSerializer();
            //StringWriter sw = new StringWriter();
            //serializer.Serialize(new JsonTextWriter(sw), stu);
            //richTextBox1.Text += sw.GetStringBuilder().ToString();

            //StringReader sr = new StringReader(sw.GetStringBuilder().ToString());
            //Student s = (Student)serializer.Deserialize(new JsonTextReader(sr), typeof(Student));
            //richTextBox1.Text += "\n" + s.Name + "=>" + s.Age;

            //2.序列化成数组型JSON
            //List<Student> students = new List<Student>();
            //Student stu = new Student() { Name = "Jack", Age = 20 };
            //Student stu1 = new Student() { Name = "Tom", Age = 21 };
            //students.Add(stu);
            //students.Add(stu1);
            //JsonSerializer serializer = new JsonSerializer();
            //StringWriter sw = new StringWriter();
            //serializer.Serialize(new JsonTextWriter(sw), students);
            //richTextBox1.Text = sw.GetStringBuilder().ToString();

            //序列化成嵌套型JSON
            List<Students> students = new List<Students>();
            Students stu = new Students() { Name = "Jack", Age = 20, Phones = new List<string> { "1455655888", "15236988985" } };
            Students stu1 = new Students() { Name = "Tom", Age = 21, Phones = new List<string> { "1325889684", "15236988985" } };
            students.Add(stu);
            students.Add(stu1);
            JsonSerializer serializer = new JsonSerializer();
            StringWriter sw = new StringWriter();
            serializer.Serialize(new JsonTextWriter(sw), students);
            richTextBox1.Text = sw.GetStringBuilder().ToString();
        }

        //public class Student
        //{
        //    public string Name { get; set; }
        //    public int Age { get; set; }
        //}

        public class Students
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public List<string> Phones { get; set; }

        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值