zoukankan      html  css  js  c++  java
  • c#里string和Json转换

    这里要用到如下两个namespace:

    using System.Runtime.Serialization.Json;
    using System.Runtime.Serialization;

    定义Json实体类如下:

    [DataContract]
    public class TextMessage
    {
        [DataMember(Name = "content")]
        public string Content { get; set; }
    }
    
    [DataContract]
    public class CustomerMessage
    {
        [DataMember(Name = "touser")]
        public string touser { get; set; }
    
        [DataMember(Name = "msgtype")]
        public string msgtype { get; set; }
    
        [DataMember(Name = "text")]
        public TextMessage textMsg { get; set; }
    }
    

    对象序列化为Json格式如下:

    CustomerMessage message = new CustomerMessage()
    {
        touser = OpenIDBox.Text,
        msgtype = "text",
        textMsg = new TextMessage()
        {
            Content = ContentBox.Text
        }
    };
    
    DataContractJsonSerializer json = new DataContractJsonSerializer(message.GetType());
    string szJson = "";
    
    //序列化
    using (MemoryStream stream = new MemoryStream())
    {
        json.WriteObject(stream, message);
        szJson = Encoding.UTF8.GetString(stream.ToArray());
    }
    
    Console.WriteLine(szJson);
    

     Json格式反序列化为对象如下:

    retStr = "<Json String>";
    using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(retStr)))
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(CustomerMessage));
        CustomerMessage_message = (CustomerMessage)serializer.ReadObject(ms);
    }
    
  • 相关阅读:
    VI中的批量替换--转载
    Zookeeper集群
    Zookeeper实现Master选举(哨兵机制)
    分布式session之token解决方案实现
    浏览器
    分布式session之redis解决方案实现
    服务器操作常用
    Nginx安装教程(Centos6.8)
    分布式锁(Redis实现)
    开发总结
  • 原文地址:https://www.cnblogs.com/chunyih/p/3861869.html
Copyright © 2011-2022 走看看