• 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; }
        }
    }
    
  • 相关阅读:
    python学习笔记(unittest)
    python学习笔记(session)
    python学习笔记(requests)
    jmeter的学习(配置环境)
    Codeforces 576D. Flights for Regular Customers 题解
    Codeforces 1316F. Battalion Strength 题解
    2020年第十一届蓝桥杯省赛J-网络分析(带权并查集)
    第十一届蓝桥杯b组省赛 C.合并检测(内附详细的样例)
    蓝桥杯2020.7月真题走方格(到达终点的不同方案数)(记忆化搜索+DP)
    Codeforces Global Round 11 A. Avoiding Zero(思维构造)
  • 原文地址:https://www.cnblogs.com/geovindu/p/3763516.html
Copyright © 2020-2023  润新知