zoukankan      html  css  js  c++  java
  • JsonToObject序列化方法

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Runtime.Serialization.Json;
    using System.Text;
    using System.Web;
    using System.Web.Script.Serialization;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
    
    
    
        public static T JSONToObject2<T>(string jsonText)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            try
            {
                return jss.Deserialize<T>(jsonText);
            }
            catch (Exception ex)
            {
                throw new Exception("JSONHelper.JSONToObject(): " + ex.Message);
            }
        }
    
    
        public static T JSONToObject<T>(string jsonString)
        {
            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            {
                return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
            }
        }
        string str = "[{"Name":"lj","Age":12,"Alive":true,"FavoriteFilms":["Up","Avatar"],"Child":null},{"Name":"cy","Age":28,"Alive":false,"FavoriteFilms":null,"Child":{"Name":"lj","Age":12,"Alive":true,"FavoriteFilms":["Up","Avatar"],"Child":null}}]";
    
        string str3 = "[{"Name":"lj","Age":12,"Alive":true},{"Name":"xx","Age":11,"Alive":true}]";
    
        string str2 = "[{'Name':'815bb899-8d70-4745-b799-7e68840a2b34','Age':13,'Alive':true},{'Name':'111222','Age':1555,'Alive':false}]";
    
        public class Person
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public bool Alive { get; set; }
            public string[] FavoriteFilms { get; set; }
            public Person Child { get; set; }
        }
        public class Person2
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public bool Alive { get; set; }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            
            List<Person2> ps = JsonHelper.JsonStrToObject<List<Person2>>(str2);
            //List<Person2> persons = JSONToObject2<List<Person2>>(str2);
    
            Response.Write(ps[0].Name + "——" + ps[0].Age);
        }
    }
    
    
    
    ------------------------------------------------------------------------------------------------------------
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Runtime.Serialization.Json;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Web;
    using System.Web.Script.Serialization;
    
    /// <summary>
    /// JsonHelper 的摘要说明
    /// </summary>
    public static class JsonHelper
    {
        //public JsonHelper()
        //{
            public static T JSONToObject2<T>(string jsonText)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            try
            {
                return jss.Deserialize<T>(jsonText);
            }
            catch (Exception ex)
            {
                throw new Exception("JSONHelper.JSONToObject(): " + ex.Message);
            }
        }
    
    
            public static T JSONToObject<T>(string jsonString)
        {
            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            {
                return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
            }
        }
    
    
        //Json to Object
        public static T JsonStrToObject<T>(this string input)
        {
            //JavaScriptSerializer serializer = new JavaScriptSerializer();
            //serializer.MaxJsonLength = 999999999;
            //input = Regex.Replace(input, @"\/Date((d+))\/", match => { DateTime dt = new DateTime(1970, 1, 1); dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value)); dt = dt.ToLocalTime(); return dt.ToString("yyyy-MM-dd HH:mm:ss"); });
            //return serializer.Deserialize<T>(input);
    
            var json = Regex.Replace(
                input,
                @":new Date((d+))",
                match =>
                {
                    var datetime = new DateTime(0x7b2, 1, 1).AddMilliseconds(long.Parse(match.Groups[1].Value)).ToLocalTime();
                    var output = ":"" + datetime.ToString("yyyy-MM-ddTHH:mm:ss.fff") + """;
                    return output;
                });
            var serializer = new JavaScriptSerializer() { MaxJsonLength = 0x3b9ac9ff };
    
            json = Regex.Replace(json, @"\/Date((d+))\/", match => { DateTime dt = new DateTime(1970, 1, 1); dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value)); dt = dt.ToLocalTime(); return dt.ToString("yyyy-MM-dd HH:mm:ss"); });
    
            var entity = serializer.Deserialize<T>(json);
            return entity;
        }
    
        //}
    }
    #region AddToContents
            [WebMethod]
            public List<Person2> AddToContents(string strContents)
            {
                object objRealWX = JSONHelp.JsonStrToObject<List<Person2>>(strContents);
                List<Person2> objs = new List<Person2>();
    
                List<Person2> objRealWX1 = strContents.JsonStrToObject<List<Person2>>(); //JSONHelp.JsonStrToObject<List<Person2>>(strContents);
    
                for (int i = 0; i < objRealWX1.Count; i++)
                {
                    objs.Add(objRealWX1[i]);  
                }
                return objs;
    }
  • 相关阅读:
    yii2.0的学习之旅(一)
    elasticSearch查询(一)
    PHP--常用配置项
    php7和php5区别是什么
    做社交电商的朋友注意了!芬香的竞‌品出‌来了,小绿券,跟芬‌香几‌乎一‌模一样,但是这‌个邀请码3RIOQQ是刚刚流出的,我这里是第一手!
    为什么强烈推荐 Java 程序员使用 Google Guava 编程!
    MyBatis动态SQL(认真看看, 以后写SQL就爽多了)
    微软宣布加入 OpenJDK,打不过就改变 Java 未来!
    IntelliJ 平台 2020 年路线图
    年底了,整理了一份程序员面试必看的文章合集
  • 原文地址:https://www.cnblogs.com/iDennis/p/5759633.html
Copyright © 2011-2022 走看看