C# JSON数据解析

C# JSON数据解析

JSON格式化链接:https://www.bejson.com/

Newtonsoft.JSON :链接:https://pan.baidu.com/s/1wkd6hNBTAYq69d3ytnV4Ag 

         提取码:6po0

JSON数据转类链接:http://json2csharp.chahuo.com/

JSON数据转类  转载  https://www.cnblogs.com/dhx96/p/7381124.html

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using Newtonsoft.Json;
using Newtonsoft;
using System.Web.Script.Serialization;
namespace HelloLinq
{
    class Program
    {

        static void Main(string[] args)
        {
            /*JSON序列化*/
            #region JSON序列化
            string jsonDemo = "[{\"jd\": \"2019-001|2019-002|2019-003|2019-004\"     },     {         \"xinpin\": \"2019-005|2019-006\"     } ]";
            List<Dictionary<string, string>> obj = new List<Dictionary<string, string>>();
            obj = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonDemo);
            var val = "";
            foreach (var item in obj)
            {
                if (item.ContainsKey("jd"))
                {
                    val = item["jd"].ToString();
                }
            }
            string[] valueList = val.Split('|');
            Console.WriteLine(val);
            foreach (string code in valueList)
            {
                Console.WriteLine(code);
            }

            string jsonText = "{\"companyID\":\"15\",\"employees\":[{\"firstName\":\"Bill\",\"lastName\":\"Gates\"},{\"firstName\":\"George\",\"lastName\":\"Bush\"}],\"manager\":[{\"salary\":\"6000\",\"age\":\"23\"},{\"salary\":\"8000\",\"age\":\"26\"}]}";

            Console.WriteLine(jsonText);

            RootObject rb = JsonConvert.DeserializeObject<RootObject>(jsonText);

            Console.WriteLine(rb.companyID);

            Console.WriteLine(rb.employees[0].firstName);

            foreach (Manager item in rb.manager)
            {
                Console.WriteLine(item.age);
            }
            /*C#处理简单JSON数据*/
            #region  C#处理简单JSON数据
            string jsonStr = "{\"result\":\"0\",\"res_info\":\"ok\",\"queryorder_info\":\"info\"}";
            /*先引用System.Web.Extensions,再using System.Web.Script.Serialization;*/
            JavaScriptSerializer js = new JavaScriptSerializer();
            ToJsonMy list = js.Deserialize<ToJsonMy>(jsonStr);
            string result = list.result;
            string res_info = list.res_info;
            string queryorder_info = list.res_info;
            #endregion

            /*C#处理包含对象的JSON数据*/
            #region C#处理包含对象的JSON数据
            string jsonContainsObject = "{\"result\":\"0\",\"res_info\":\"ok\",\"queryorder_info\":{\"order_num\":\"5\",\"orderdetail\":\"ok\"}}";
            ToJsonMy2 listToJsonMy2 = js.Deserialize<ToJsonMy2>(jsonContainsObject);
            string resultToJsonMy2 = listToJsonMy2.result;
            string res_infoToJsonMy2 = listToJsonMy2.res_info;
            string order_num = listToJsonMy2.queryorder_info.order_num;
            string orderdetail = listToJsonMy2.queryorder_info.orderdetail;
            #endregion

            #region C#处理包含对象、数值的JSON数据
            string jsonTxt = "{\"result\":\"0\",\"res_info\":\"ok\",\"queryorder_infoToJson\":{\"order_num\":\"5\",\"orderdetail\":[{\"CFTUin\":\"769839263\",\"CancelDeadline\":\"2013-09-12 23:00:00\",\"CheckInDate\":\"2013-09-12 00:00:00\",\"CheckOutDate\":\"2013-09-13 00:00:00\",\"CityID\":\"0101\",\"CurrencyCode\":\"RMB\",\"HotelID\":\"00301105\",\"HotelName\":\"乐家连锁(北京天坛南门店)(原速8酒店(北京天坛南门店)\",\"ListID\":\"1000000005201308280002999652\",\"PayAmt\":\"228\",\"PayType\":\"0\",\"RommsCnt\":\"1\",\"SPTransID\":\"65202157\",\"State\":\"4\"},{\"CFTUin\":\"248486133\",\"CancelDeadline\":\"2013-10-13 23:00:00\",\"CheckInDate\":\"2013-10-13 00:00:00\",\"CheckOutDate\":\"2013-10-18 00:00:00\",\"CityID\":\"0201\",\"CurrencyCode\":\"RMB\",\"HotelID\":\"10201314\",\"HotelName\":\"上海凯顿酒店\",\"ListID\":\"1000000005201308280002999413\",\"PayAmt\":\"1140\",\"PayType\":\"0\",\"RommsCnt\":\"1\",\"SPTransID\":\"65197226\",\"State\":\"4\"}]}}";
            ToJsonMy3 ToJsonMy3List = js.Deserialize<ToJsonMy3>(jsonTxt);    //将json数据转化为对象类型并赋值给list
            string resultToJsonMy = ToJsonMy3List.result;
            string res_infoToJsonMy = ToJsonMy3List.res_info;
            string order_numToJsonMy = ToJsonMy3List.queryorder_infoToJson.order_num;
            List<orderdetail> orderdetailToJsonMy = ToJsonMy3List.queryorder_infoToJson.orderdetail;
            string CFTUin = orderdetailToJsonMy[0].CFTUin;
            string HotelName = orderdetailToJsonMy[0].HotelName;
            string ListID = orderdetailToJsonMy[1].ListID;
            string State = orderdetailToJsonMy[1].State;
            #endregion
            #endregion

            Console.ReadLine();

        }
}
        #region 序列化表
        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 string Result { get; set; }
            public List<ListDemo> List { get; set; }
        }
        public class ToJsonMy
        {
            public string result { get; set; }  //属性的名字,必须与json格式字符串中的"key"值一样。
            public string res_info { get; set; }
            public string queryorder_info { get; set; }
        }
        public class ListDemo
        {
            public string name { get; set; }
            public string sex { get; set; }
            public string idno { get; set; }
            public string addr { get; set; }
            public string telephone { get; set; }
            public string Age { get; set; }
            public string DeptName { get; set; }
        }

        public struct ToJsonMy2
        {
            public string result { get; set; }
            public string res_info { get; set; }
            public queryorder_info queryorder_info;
        }
        public struct queryorder_info
        {
            public string order_num { get; set; }
            public string orderdetail { get; set; }
        }

        public struct ToJsonMy3
        {
            public string result { get; set; }
            public string res_info { get; set; }
            public queryorder_infoToJson queryorder_infoToJson;
        }

        public struct queryorder_infoToJson
        {
            public string order_num { get; set; }
            public List<orderdetail> orderdetail;//数组处理       
        }
        public struct orderdetail
        {
            public string CFTUin { get; set; }
            public string CancelDeadline { get; set; }
            public string CheckInDate { get; set; }
            public string CheckOutDate { get; set; }
            public string CityID { get; set; }
            public string CurrencyCode { get; set; }
            public string HotelID { get; set; }
            public string HotelName { get; set; }
            public string ListID { get; set; }
            public string PayAmt { get; set; }
            public string PayType { get; set; }
            public string RommsCnt { get; set; }
            public string SPTransID { get; set; }
            public string State { get; set; }
        }
        #endregion
}
  

 

posted @ 2019-05-08 14:44  超暖系呆少年i  阅读(679)  评论(0编辑  收藏  举报