WebEnh

.net7 mvc jquery bootstrap json 学习中 第一次学PHP,正在研究中。自学进行时... ... 我的博客 https://enhweb.github.io/ 不错的皮肤:darkgreentrip,iMetro_HD
随笔 - 1079, 文章 - 1, 评论 - 75, 阅读 - 174万
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

如题,我就不多说了,自己看代码的,很好理解

复制代码
复制代码
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;
using System.Web.Script.Serialization;
using System.Runtime.Serialization.Json;



/// <summary>
/// json反序列化对象
/// </summary>
public class Nature
{
    public string name { get; set; }//属性编号
    public string sex { get; set; }  //分类编号
}


/// <summary>
/// json反序列化对象
/// </summary>
public class Person
{
    public string name { get; set; }//属性编号
    public string sex { get; set; }  //分类编号
    public string age { get; set; }  //分类编号
    public string tel { get; set; }  //分类编号
}



public partial class _Default : System.Web.UI.Page
{


    protected void Page_Load(object sender, EventArgs e)
    {
        //复杂的json解析
        String json = "[{\"name\":\"zhangsan\",\"sex\":\"男\"},{\"name\":\"李四\",\"sex\":\"男\"},{\"name\":\"张娟\",\"sex\":\"女\"},{\"name\":\"慧娟\",\"sex\":\"女\"}]";
        List<Nature> nt = Deserialize<List<Nature>>(json);
        if (nt != null && nt.Count > 0)
        {
            Response.Write("复杂的json反序列化:<br/>");
            foreach (Nature dt in nt)//打印集合中的元素                
            {
                Response.Write(dt.name+"<br/>");
            }
        }


        //简单的json解析
        String json1 = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":\"25\",\"tel\":\"1301554XXXX\"}";


        JavaScriptSerializer js = new JavaScriptSerializer();
        Person pe = js.Deserialize<Person>(json1);

        Response.Write("<br/>简单的json反序列化:" + pe.name);


        Response.Write("<h5>序列化操作</h5>");
        Response.Write("<h5>复杂对象序列化</h5>");
        List<Nature> list = new List<Nature>()   
        {   
            new Nature(){ name="张三", sex=""},   
            new Nature(){ name="慧娟", sex=""}   
        };
        string jsonTxt = JsonSerializer<List<Nature>>(list);
        Response.Write(jsonTxt);

        Response.Write("<h5>简单对象序列化</h5>");
        Person pes = new Person();

        pes.name = "姐姐";
        pes.sex = "";
        pes.tel = "1301554XXXX";
        pes.age = "23";

        string json1Txt = JsonSerializer<Person>(pes);
        Response.Write(json1Txt);
    }



    /// <summary>
    /// 反序列化json数组
    /// </summary>
    /// <typeparam name="T">对象</typeparam>
    /// <param name="json">json数组</param>
    /// <returns></returns>
    public  T Deserialize<T>(string json)
    {
        T obj = Activator.CreateInstance<T>();
        using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
        {
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
            return (T)serializer.ReadObject(ms);
        }
    }


    /// <summary>
    /// 序列化对象为json
    /// </summary>
    /// <typeparam name="T">类型</typeparam>
    /// <param name="t">对象</param>
    /// <returns></returns>
    public  string JsonSerializer<T>(T t)
    {
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
        MemoryStream ms = new MemoryStream();
        ser.WriteObject(ms, t);
        string jsonString = Encoding.UTF8.GetString(ms.ToArray());
        ms.Close();
        return jsonString;
    }
}
复制代码
复制代码


运行图片:

 

源码:https://files.cnblogs.com/netqq/Json.zip

编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多