c#解析json<--1-->

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.ServiceModel;

using System.Runtime.Serialization;

using System.ServiceModel.Web;

using System.Runtime.Serialization.Json;

using System.IO;


namespace json

{

    class Program

    {

        static void Main(string[] args)

        {

            people guanYu = new people(1,"关羽",23);

            MemoryStream ms = new MemoryStream();//创建一个内存流;

            DataContractJsonSerializer jData = new DataContractJsonSerializer(typeof(people));//根据对象的类型创建一个DataContractJsonSerializer对象。感觉像是把数据对象类型绑定到该对象上。

            jData.WriteObject(ms, guanYu);//将指定对象,写入到流中。

            ms.Position = 0;//设置流的当前位置

            StreamReader reader = new StreamReader(ms);//创建一个可以从流中读取数据的对象。

            Console.WriteLine(reader.ReadToEnd());//从流的当前位置一直读到流的末尾,并输出到控制台。


            string str = "{\"Age\":1,\"Name\":\"刘备\",\"Id\":10}";  //要转换成json对象的字符串

            MemoryStream mss = new MemoryStream(Encoding.UTF8.GetBytes(str));//创建内存流,把字节序列化的json字符串当做参数传入到实例化类中

            people liuBei = jData.ReadObject(mss) as people;//转化成json对象

            Console.WriteLine(liuBei.Name);

        }

    }

    [DataContract]

    public class people

    {

        /// <summary>

        /// id,name,age

        /// </summary>

        /// <param name="id"></param>

        /// <param name="name"></param>

        /// <param name="age"></param>

        public people(int id, string name, int age)

        {

            Name = name;

            Id = id;

            Age = age;

        }

        [DataMember]

        public string Name

        {

            set;

           get;

        }

        [DataMember]

        public int Age

        {

            set;

            get;

        }

        [DataMember]

        public int Id

        {

            set;

            get;

        }

    }

}


你可能感兴趣的:(json,C#)