博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET中JSON的序列化和反序列化
阅读量:7287 次
发布时间:2019-06-30

本文共 2278 字,大约阅读时间需要 7 分钟。

.NET 中有两种方法进行JSON的操作分别需要引用不同的命名空间

1.System.Runtime.Serialization.Json(System.Runtime.Serialization.dll)

public class JsonHelper{    ///     /// 生成Json格式    ///     /// 
/// ///
public static string GetJson
(T obj) { DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType()); using (MemoryStream stream = new MemoryStream()) { json.WriteObject(stream, obj); string szJson = Encoding.UTF8.GetString(stream.ToArray()); return szJson; } } ///
/// 获取Json的Model /// ///
///
///
public static T ParseFromJson
(string szJson) { T obj = Activator.CreateInstance
(); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); return (T)serializer.ReadObject(ms); } }}public class topMenu{ public string id { get; set; } public string title { get; set; } public string defaulturl { get; set; }}

具体的操作代码

topMenu t_menu = new topMenu()            {                id = "1",                title = "全局",                defaulturl = "123456"            };List
l_topmenu = new List
();for (int i = 0; i < 3; i++) { l_topmenu.Add(t_menu); }Response.Write(JsonHelper.GetJson
>(l_topmenu));

输出结果为:

       [{"defaulturl":"123456","id":"1","title":"全局"},{"defaulturl":"123456","id":"1","title":"全局"},{"defaulturl":"123456","id":"1","title":"全局"}] 

下面利用上面ParseFromJson方法读取Json

     输出结果为:全局

string szJson = @"{""id"":""1"",""title"":""全局"",""defaulturl"":""123456""} ";      topMenu t_menu2 = JsonHelper.ParseFromJson
(szJson); Response.Write(t_menu2.title);

 

2.System.Web.Script.Serialization(System.Web.Extensions.dll)

JavaScriptSerializer jss = new JavaScriptSerializer(); Response.Write( jss.Serialize(l_topmenu ));
string szJson = @"{""id"":""1"",""title"":""全局"",""defaulturl"":""123456""} ";topMenu toptabmenu = jss.Deserialize
(szJson); Response.Write( jss.Serialize(toptabmenu.title));

 

转载地址:http://kppjm.baihongyu.com/

你可能感兴趣的文章
计蒜客 17417 Highest Tower(思维+图论)
查看>>
linux下如何执行PHP脚本
查看>>
理解 select poll epoll
查看>>
vue首屏减少加载时间(gzip)
查看>>
注意事项
查看>>
Exception starting filter struts2 Unable to load configuration. - [unknown l
查看>>
20145337 《Java程序设计》第九周学习总结
查看>>
《Python编程从入门到实践》--- 学习过程笔记(2)变量和简单数据类型
查看>>
session开启慢的原因及解决办法
查看>>
调试Javascript
查看>>
简说设计模式——访问者模式
查看>>
Typescript高级类型
查看>>
MATLAB初体验
查看>>
HTML5之Canvas绘图——半圆与圆弧的不同画法
查看>>
nodejs+express+mongodb写api接口的简单尝试
查看>>
GDB调试 出错问题
查看>>
LeetCode每日一题:Bigram 分词(No.1078)
查看>>
多线程笔记 三
查看>>
2017-10-6(Retrofit使用范例的源码分析 )
查看>>
iOS直播技术学习笔记 YUV颜色空间(六)
查看>>