zoukankan      html  css  js  c++  java
  • 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; }
        }
    }
    
  • 相关阅读:
    kubernetes集群之资源配额(Resource Quotas)
    kubernetes之subpath的使用
    kubernetes之RBAC介绍
    python-日志模块
    pip安装模块提示Command "python setup.py egg_info" failed with error code 1
    TCP/IP协议讲解
    魔镜—58可视化数据智能平台架构与实践
    支付宝开源非侵入式 Android 自动化测试工具 Soloπ
    诗人“九歌”开源
    神奇的Kivy,让Python快速开发移动app
  • 原文地址:https://www.cnblogs.com/geovindu/p/3763516.html
Copyright © 2011-2022 走看看