c#操作json的两种方式
总结一下C#操作json的两种方式,都是将对象和json格式相转。
1.JavaScriptSerializer,继承自System.Web.Script.Serialization
private string Serializer<T>(T t)
{
JavaScriptSerializer json=new JavaScriptSerializer();
return json.Serialize(t);
} private T DeSerialze<T>(string strJeson) {
JavaScriptSerializer strJeson1 = new JavaScriptSerializer();
return strJeson1.Deserialize<T>(strJeson);
}
2.DataContractJsonSerializer,继承自System.Runtime.Serialization.Json;
代码如下
/// <summary>
/// create json data according to entity
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="t"></param>
/// <returns></returns>
public static string GetJsonSerializar<T>(T t)
{
var ser = new DataContractJsonSerializer(typeof(T));
using (MemoryStream ms=new MemoryStream())
{
ser.WriteObject(ms,t);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
/// <summary>
/// parse json data accroding to json string data
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonStr"></param>
/// <returns></returns>
public static T ParseFromJson<T>(string jsonStr)
{
//T obj = Activator.CreateInstance<T>();
//using (MemoryStream ms=new MemoryStream(Encoding.UTF8.GetBytes(jsonStr)))
//{
// DataContractJsonSerializer jsonSerializer=new DataContractJsonSerializer(obj.GetType());
// return (T) jsonSerializer.ReadObject(ms);
//}
var ser = new DataContractJsonSerializer(typeof(T));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr));
var obj = (T)ser.ReadObject(ms);
return obj;
}
但是json在客户端和浏览器传递之间时,如果传递的是实体类的json格式数据,则这类实体类应该用协议去定义,例如:
[DataContract]
public class MsgEntity
{
[DataMember(Order = ,IsRequired = true)]
public string Msg { get; set; } [DataMember(Order = , IsRequired = false)]
public string HtmlMsg { get; set; }
}
c#操作json的两种方式的更多相关文章
- Hadoop之HDFS文件操作常有两种方式(转载)
摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式.本文介绍如何利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件 命令行 Java API HD ...
- flask 操作mysql的两种方式-sqlalchemy操作
flask 操作mysql的两种方式-sqlalchemy操作 二.ORM sqlalchemy操作 #coding=utf-8 # model.py from app import db class ...
- flask 操作mysql的两种方式-sql操作
flask 操作mysql的两种方式-sql操作 一.用常规的sql语句操作 # coding=utf-8 # model.py import MySQLdb def get_conn(): conn ...
- javascript总结40:DOM中操作样式的两种方式
1 DOM中操作样式的两种方式 1 通过元素的style属性 注意: 通过style属性设置样式时,css中要写单位的属性,在js代码中也要加单位 //html <div id="bo ...
- Android开发之使用sqlite3工具操作数据库的两种方式
使用 sqlite3 工具操作数据库的两种方式 请尊重他人的劳动成果,转载请注明出处:Android开发之使用sqlite3工具操作数据库的两种方式 http://blog.csdn.net/feng ...
- pb对Web Service的操作可使用两种方式实现
从PB8.0/9.0开始,就已经提供Web Service Proxy功能,能够直接进行相关程序的编写. 但是,部分老项目使用PB6.5开发 研究后发现,其实PB6.5要操作Web Service也挺 ...
- Java中将xml文件转化为json的两种方式
原文地址https://blog.csdn.net/a532672728/article/details/76312475 最近有个需求,要将xml转json之后存储在redis中,找来找去发现整体来 ...
- Django框架操作数据库的两种方式
Django操作数据库的前提操作是成功连接数据库,详情见上篇:https://www.cnblogs.com/kristin/p/10791358.html Django查询数据库的方式一 from ...
- SpringMVC 返回json的两种方式
前后台数据交互使用json是一种很重要的方式.本文主要探讨SpringMVC框架使用json传输的技术. 请注意,本文所提到的项目使用Spring 版本是4.1.7,其他版本在具体使用上可能有不一样的 ...
随机推荐
- AOP代理对象生成
AOP(Aspect-OrientedProgramming,面向方面编程)是OOP(Object-Oriented Programing,面向对象编程)的良好补充与完善,后者侧重于解决 从上到下的存 ...
- Visual Studio 2017的一些使用记录
只要在整个项目组里加一个新的项目,vs就会去自动修改sln文件 新加一个项目的理解为:菜单里 File->New->Project一个项目编译后生成1个dll文件 sln是文本文件只有vs ...
- 【论文阅读】Deep Mixture of Diverse Experts for Large-Scale Visual Recognition
导读: 本文为论文<Deep Mixture of Diverse Experts for Large-Scale Visual Recognition>的阅读总结.目的是做大规模图像分类 ...
- StringBuufer与StringBulder线程的区别
StringBulder的append方法 不是synchronized修饰的 线程不安全 效率相对很快StringBuufer的append方法 是 synchronized修饰的 ...
- 微信小程序 下拉加载
在 Page 中定义 onPullDownRefresh 处理函数,监听该页面用户下拉刷新事件. 例: Page({ onPullDownRefresh: function(){ wx.stopPul ...
- 一张图解释IaaS,PaaS,SaaS
图片来源于MVA教程:快速入门——面向IT专业人员的Windows Azure IaaS
- java String补足
regionMatches()方法: equals 比较内容 == 比较的是地址
- cygwin 安装 apt-cyg
apt-cyg apt-cyg is a Cygwin package manager. It includes a command-line installer for Cygwin which c ...
- powerdesigner的PDM模型name和comment相互复制替换
在[Tools]-[Execute Commands]-[Edit/Run Script] 下.输入以下命令,这些命令也可以保存起来,扩展名为 vbs ,以便下次使用. 1.name的值复制到comm ...
- 指定时间生成cron表达式
public class CronUtils { private static final SimpleDateFormat sdf = new SimpleDateFormat("ss m ...