·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> csharp:.net 3.5 using System.Runtime.Serialization.Json read json

csharp:.net 3.5 using System.Runtime.Serialization.Json read json

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

csharp:.net 3.5 using System.Runtime.Serialization.Json read json

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;//http://msdn.microsoft.com/zh-cn/library/system.runtime.serialization.datacontractattribute.aspx//using System.Web.Script.Serialization;using System.Text;using System.IO;using System.Runtime;using System.Runtime.Serialization;// 添加 System.Runtime.Serializationusing System.Runtime.Serialization.Json;//添加 System.ServiceModel和System.ServiceModel.Web的引用using System.xml;using System.Runtime.Serialization.Formatters;namespace JsonNetDemo{    public partial class WebForm1 : System.Web.UI.Page    {        string dataString = string.Empty;                /// <summary>        ///         /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        PRotected void Page_Load(object sender, EventArgs e)        {        }        /// <summary>        /// 对象转化为JSON字符串        /// http://www.cnblogs.com/coderzh/archive/2008/11/25/1340862.html        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        protected void Button1_Click(object sender, EventArgs e)        {            var config = new JsonConfig()            {                encoding = "UTF-8",                plugins = new string[] { "java", "C++", "C#" },                indent = new Indent() { length = 4, use_space = false }            };            var serializer = new DataContractJsonSerializer(typeof(JsonConfig));            var stream = new MemoryStream();            serializer.WriteObject(stream, config);            byte[] dataBytes = new byte[stream.Length];            stream.Position = 0;            stream.Read(dataBytes, 0, (int)stream.Length);            dataString = Encoding.UTF8.GetString(dataBytes);            Response.Write("JSON string is:");            Response.Write(dataString);        }        /// <summary>        /// JSON字符串转对象        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        protected void Button2_Click(object sender, EventArgs e)        {            var config = new JsonConfig()            {                encoding = "UTF-8",                plugins = new string[] { "Java", "C++", "C#" },                indent = new Indent() { length = 4, use_space = false }            };            var serializer = new DataContractJsonSerializer(typeof(JsonConfig));            var stream = new MemoryStream();            serializer.WriteObject(stream, config);            byte[] dataBytes = new byte[stream.Length];            stream.Position = 0;            stream.Read(dataBytes, 0, (int)stream.Length);            dataString = Encoding.UTF8.GetString(dataBytes);            //var serializer = new DataContractJsonSerializer(typeof(JsonConfig));            var mStream = new MemoryStream(Encoding.Default.GetBytes(dataString));            JsonConfig readConfig = (JsonConfig)serializer.ReadObject(mStream);            Response.Write(string.Format("Encoding is: {0}", readConfig.encoding));            foreach (string plugin in readConfig.plugins)            {                Response.Write(string.Format("plugins is: {0}", plugin));            }            Response.Write(string.Format("indent.length is: {0}", readConfig.indent.length));            Response.Write(string.Format("indent.use_space is: {0}", readConfig.indent.use_space));        }    }    [DataContract(Name = "Customer", Namespace = "JsonNetDemo")]    class JsonConfig    {        [DataMember(Order = 0)]        public string encoding { get; set; }        [DataMember(Order = 1)]        public string[] plugins { get; set; }        [DataMember(Order = 2)]        public Indent indent { get; set; }    }    [DataContract(Name = "Customer", Namespace = "JsonNetDemo")]    class Indent    {        [DataMember(Order = 0)]        public int length { get; set; }        [DataMember(Order = 1)]        public bool use_space { get; set; }    }}