C#中JsonHelper详细代码-用于序列化和反序列化_weixin_30808575的博客-程序员资料

技术标签: c#  json  runtime  

 1 /// <summary>
 2         /// 转换对象为JSON格式数据
 3         /// </summary>
 4         /// <typeparam name="T"></typeparam>
 5         /// <param name="obj">对象</param>
 6         /// <returns>字符格式的JSON数据</returns>
 7         public string GetJSON<T>(object obj)
 8         {
 9             string result = String.Empty;
10             try
11             {
12                 System.Runtime.Serialization.Json.DataContractJsonSerializer serializer =
13                 new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
14                 using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
15                 {
16                     serializer.WriteObject(ms, obj);
17                     result = System.Text.Encoding.UTF8.GetString(ms.ToArray());
18                 }
19             }
20             catch (Exception ex)
21             {
22                 throw ex;
23             }
24             return result;
25         }
26         /// <summary>
27         /// 转换List<T>的数据为JSON格式
28         /// </summary>
29         /// <typeparam name="T"></typeparam>
30         /// <param name="vals">列表值</param>
31         /// <returns>JSON格式数据</returns>
32         public string JSON<T>(List<T> vals)
33         {
34             System.Text.StringBuilder st = new System.Text.StringBuilder();
35             try
36             {
37                 System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
38 
39                 foreach (T city in vals)
40                 {
41                     using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
42                     {
43                         s.WriteObject(ms, city);
44                         st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray()));
45                     }
46                 }
47             }
48             catch (Exception ex)
49             {
50                 throw ex;
51             }
52 
53             return st.ToString();
54         }
55         /// <summary>
56         /// JSON格式字符转换为T类型的对象
57         /// </summary>
58         /// <typeparam name="T"></typeparam>
59         /// <param name="jsonStr"></param>
60         /// <returns></returns>
61         public T ParseFormByJson<T>(string jsonStr)
62         {
63             T obj = Activator.CreateInstance<T>();
64             using (System.IO.MemoryStream ms =
65             new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr)))
66             {
67                 System.Runtime.Serialization.Json.DataContractJsonSerializer serializer =
68                 new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
69                 return (T)serializer.ReadObject(ms);
70             }
71         }
72 
73         public string JSON1<SendData>(List<SendData> vals)
74         {
75             System.Text.StringBuilder st = new System.Text.StringBuilder();
76             try
77             {
78                 System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(SendData));
79 
80                 foreach (SendData city in vals)
81                 {
82                     using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
83                     {
84                         s.WriteObject(ms, city);
85                         st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray()));
86                     }
87                 }
88             }
89             catch (Exception ex)
90             {
91                 throw ex;
92             }
93 
94             return st.ToString();
95         }    
View Code

如果提示不存在Json命名空间,在引用中添加一下引用:

System.Runtime.Serialization

 

转载于:https://www.cnblogs.com/wangliqiang1026/p/4505320.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30808575/article/details/99107042

智能推荐

android:cacheColorHint=“#00000000”_屌丝男士zkc的博客-程序员资料

istView.setCacheColorHint(0); 或者Android:cacheColorHint="#000000" 去除listview的拖动背景色自定义listview的时候,当你不使用android:cacheColorHint=“#00000000”会出现下面选中一个空间黑色底色的情况,破坏整体美观度:当你不使用android:listSel

frida之HOOK篇(二)手动hook_frida之hook篇(二)手动hook_kfyzjd2008的博客-程序员资料

一、编写测试用APPpackage com.example.helloworld;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends AppCompatAc

DVD提取字幕的简要流程及涉及的主要工具_雪峰的博客-程序员资料

1、DVD拷盘用 DVD Decrypter,得到VOB文件2、从VOB中提取图形型字幕用 VobSub,得到 idx和sub配对的图形字幕文件3、图形型字幕转换成文本型用 SubOCR,得到 srt 字幕文件4、校对字幕用 Subtitle Workshop,得到翻译精准的 srt 字幕文件5、如果要加上字幕效果把  srt 字幕文件转换成SSA或ASS字幕,还可以用Subtitle Works

学习音视频开发_音视频开发培训哪家强_ChloeDimen的博客-程序员资料

 最近公司开发音视频项目,用到了很多关于音视频的开发技术。总之,我都很难下手。上网查了有一篇很好的的音视频开发任务列表。我准备按照任务列表去实践所有的任务。1::Android 音视频开发(一) : 通过三种方式绘制图片2:Android 音视频开发(二) : 音频 采集和播放3:Android音视频开发 (三):使用 Camera API 进行视频的采集,分别使用 SurfaceVi...

CentOS7搭建NTP服务器及客户端同步时间_freq_mode_hellboy0621的博客-程序员资料

在配置时钟同步服务器时第一次同步时间时,使用ntpdate命令;后续通过ntpd服务与服务器同步时间。一、搭建NTP服务器1、查看服务器、客户端操作系统版本[[email protected] ~]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)2、查看服务器是否安装ntp,系统默认安装ntpdate;[[email protected]...

[错误集锦]wsl用/mnt/无法访问windows下地址目录_我为可酱学编程的博客-程序员资料

之前wsl+ubuntu一直用/mnt/c进入windows目录。现在换成wt+zsh,结果/mnt/c/usr直接到ubuntu目录了解决方法直接进c即可:cd /c/Windows/system32

随便推点

数据结构实验之排序七:选课名单_猿憨憨的博客-程序员资料

数据结构实验之排序七:选课名单Time Limit: 1000MS Memory limit: 65536K题目描述随着学校规模的扩大,学生人数急剧增加,选课名单的输出也成为一个繁重的任务,我校目前有在校生3万多名,两千多门课程,请根据给定的学生选课清单输出每门课的选课学生名单。输入输入第一行给出两个正整数N( N ≤ 35000)和M(M ≤ 2000),其中N是全校学...

Cocos2d-x3.0游戏实例之《别救我》第五篇——使用Cocostudio UI编辑器创建操作界面_linuxheik的博客-程序员资料

这一篇内容其实很简单,已经对Cocostudio比较熟悉的朋友就可以随便扫一下了~(小若:熟悉Cocostudio的人谁还有空看你的基础教程呢)  笨木头花心贡献,啥?花心?不呢,是用心~转载请注明,原文地址:http://www.benmutou.com/blog/archives/892文章来源:笨木头与游戏开发  

好久没学习了。。。_和稀泥的博客-程序员资料

:cry: 啊啊啊~该好好做个计划了。

Delphi 2006 高级控件应用_delphi怎么添加rztray控件_voyan的博客-程序员资料

<br />  来源:电脑报<br />    Borland Developer Studio 2006 已于 2005 年 12 月 5 日正式发布了。 Delphi 2006 是 Borland Developer Studio 2006 产品中的一部分,我们不仅能继续开发基于 Win32 平台的应用程序,还可以使用 Delphi 语言编写 .NET 平台的应用程序,使得 Delphi 程序员可以轻松的将 Win32 平台的应用程序移植到 .NET 平台中。<br />    本文将带领读者去体验一下

xinetd不太详的详解_changkejia的博客-程序员资料

http://mosquito.blog.51cto.com/2973374/1078683 ######################################大蚊子整理、修正2012.12.4 20:00###################################### xinetd(eXtended InterNET services Daem...

Cartographer_ros安装_windistance的博客-程序员资料

https://www.cnblogs.com/hitcm/p/5939507.htmlhttps://google-cartographer-ros.readthedocs.io/en/latest/index.html

推荐文章

热门文章

相关标签