zoukankan      html  css  js  c++  java
  • 在framework4.0 3.5中反序列化 解析JSON

    这里会用到一个命名空间

    System.Runtime.Serialization.Json,杯具的孩子会发现,在添加引用里根本找不到此命名空间,找到的是System.Runtime.Serialization,添加引用后,根本不管用,此命名空间里根本不包括序列化要用到的对象DataContractJsonSerializer,那,这个对象到底在哪里呢。。。。

    经过不断的查终于找到了,这个坑爹的货藏的很深呀。正确的是直接添加这个引用 System.Servicemodel.Web就把问题解决了。

    顺便奉上序列化和反序列化JSON的一个类:

    using System.IO;
    using System.Text;
    using System.Runtime.Serialization.Json;
    namespace Test
    {
        /// <summary>
        /// JSON帮助类
        /// </summary>
        public class JSONHelper
        {
            //序列化
            //对象转化为Json字符串
            public static string Serialize(object objectToSerialize)
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    DataContractJsonSerializer serializer = new DataContractJsonSerializer(objectToSerialize.GetType());
                    serializer.WriteObject(ms, objectToSerialize);
                    ms.Position = 0;
    
                    using (StreamReader reader = new StreamReader(ms))
                    {
                        return reader.ReadToEnd();
                    }
                }
            }
    
            //反序列化
            //Json字符串转化为对象
            public static T Deserialize<T>(string jsonString)
            {
                using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
                {
                    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
                    return (T)serializer.ReadObject(ms);
                }
            }
        }
    }
    

      

  • 相关阅读:
    Servlet编程寄语
    filter常用功能
    Javascript的自动、定时执行和取消
    CentOS 5安装GIT的基本命令
    EF调用执行Oracle中序列
    WCF使用IIS发布服务的配置
    linux 自学系列:debian更新软件列表、更改源
    shell编程笔记五:select
    linux 自学系列: 改IP地址,主机名及DNS
    shell编程笔记四:case in
  • 原文地址:https://www.cnblogs.com/xusir/p/2771787.html
Copyright © 2011-2022 走看看