• 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.Serialization
    using 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; }
        }
    }
    
  • 相关阅读:
    【BZOJ1489】[HNOI2009]双递增序列(动态规划)
    【BZOJ1488】[HNOI2009]图的同构(Burside引理,Polya定理)
    【BZOJ4888】[TJOI2017]异或和(树状数组)
    【BZOJ1487】[HNOI2009]无归岛(动态规划)
    【BZOJ1485】[HNOI2009]有趣的数列(组合数学)
    【BZOJ1484】[HNOI2009]通往城堡之路 (贪心)
    【BZOJ1452】[JSOI2009]Count(树状数组)
    【BZOJ1449】[JSOI2009]球队收益(网络流,费用流)
    【BZOJ1444】[JSOI2009]有趣的游戏(高斯消元,AC自动机)
    【BZOJ1434】[ZJOI2009]染色游戏(博弈论)
  • 原文地址:https://www.cnblogs.com/geovindu/p/3763516.html
Copyright © 2020-2023  润新知