C# 使用操作Json数据

     C#中主要用Newtonsoft.Json 库来操作Json数据。

      例子如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace exampleJson
{
    public class Employees
    {
        public string firstName { get; set; }
        public string lastName { get; set; }
    }

    public class Manager
    {
        public string salary { get; set; }
        public string age { get; set; }

    }

    public class RootObject
    {
        public string companyID { get; set; }
        public List<Employees> employees { get; set; }
        public List<Manager> manager { get; set; }
    }

    public class Student
    {
        public string firstName { set; get; }

        public string lastName { set; get; }

        public string[] nikeName { set; get; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var student = new Student();
            student.firstName = "Liu";
            student.lastName = "Janet";
            student.nikeName = new string[] { "A", "B" };

            //类转换为json字符串
            var json = JsonConvert.SerializeObject(student);
            Console.WriteLine("-----类转换为json字符串-----");
            Console.WriteLine(json);

            //字符串转换为json对象
            //var newstudent = JsonConvert.DeserializeObject(json);
            string jsonText = "{\"shenzheng\":\"深圳\",\"beijing\":\"北京\",\"shanghai\":[{\"zj1\":\"zj11\",\"zj2\":\"zj22\"},\"zjs\"]}";
            //转为json对象
            JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
            string zone = jo["shenzheng"].ToString();//输出 深圳
            string zone_en = jo["shanghai"].ToString();//"[\r\n  {\r\n    \"zj1\": \"zj11\",\r\n    \"zj2\": \"zj22\"\r\n  },\r\n  \"zjs\"\r\n]"
            string zj1 = jo["shanghai"][1].ToString();//"zjs"
            Console.WriteLine("-----字符串转换为json对象-----");
            Console.WriteLine("jo[shenzheng] : "+ zone);
            Console.WriteLine("jo[shanghai] : " + zone_en);
            Console.WriteLine("jo[shenzheng][1] : " + zj1);
            //Console.WriteLine(jo);

            //创建一个json对象
            var jsonObj = new JObject();
            jsonObj.Add("key", "value");
            var jsonArr = new JArray();
            jsonArr.Add("A");
            jsonArr.Add("B");
            jsonObj.Add("Arr", jsonArr);
            Console.WriteLine("-----创建一个json对象-----");
            Console.WriteLine(jsonObj.ToString());

            //json格式字符串转换为C#对象
            string jsonText1 = " {\"companyID\":\"15\",\"employees\":[{\"firstName\":\"Bill\",\"lastName\":\"Gates\"},{\"firstName\":\"George\",\"lastName\":\"Bush\"}],\"manager\":[{\"salary\":\"6000\",\"age\":\"23\"},{\"salary\":\"8000\",\"age\":\"26\"}]} ";
            Console.WriteLine("-----json格式字符串转换为C#对象-----");
            Console.WriteLine("原字符串: " + jsonText1);
            RootObject rb = JsonConvert.DeserializeObject<RootObject>(jsonText1);
            Console.WriteLine(rb.companyID);
            Console.WriteLine(rb.employees[0].firstName);
            foreach (Manager ep in rb.manager)
            {
                Console.WriteLine(ep.age);
            }

            Console.ReadKey();
        }
    }
}

输出:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值