json 反序列化 父子类型_json类序列化与反序列化参考
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Runtime.Serialization.Json;usingSystem.IO;usingSystem.Text;usingSystem.Web.Script.Serialization;usingSystem.Data;namespaceMobai.KinectApp
{///
///JSON序列化和反序列化辅助类///
///
///JSON帮助类。用于将对象转换为Json格式的字符串,或者将Json的字符串转化为对象。///
public static classJsonHelper
{///
///将对象转化为Json字符串///
/// 源类型
/// 源类型实例
/// Json字符串
public static string GetJsonFromObj(T obj)
{
DataContractJsonSerializer jsonSerializer= newDataContractJsonSerializer(obj.GetType());using (MemoryStream ms = newMemoryStream())
{
jsonSerializer.WriteObject(ms, obj);returnEncoding.UTF8.GetString(ms.ToArray());
}
}///
///将Json字符串转化为对象///
/// 目标类型
/// Json字符串
/// 目标类型的一个实例
public static T GetObjFromJson(stringstrJson)
{
T obj= Activator.CreateInstance();using (MemoryStream ms = newMemoryStream(Encoding.UTF8.GetBytes(strJson)))
{
DataContractJsonSerializer jsonSerializer= newDataContractJsonSerializer(obj.GetType());return(T)jsonSerializer.ReadObject(ms);
}
}///
///将DataTable转换为JSON字符串///
/// 数据表
/// JSON字符串
public static stringGetJsonFromDataTable(DataTable dt)
{
StringBuilder JsonString= newStringBuilder();if (dt != null && dt.Rows.Count > 0)
{
JsonString.Append("{");
JsonString.Append("\"TableInfo\":[");for (int i = 0; i < dt.Rows.Count; i++)
{
JsonString.Append("{");for (int j = 0; j < dt.Columns.Count; j++)
{if (j < dt.Columns.Count - 1)
{
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\",");
}else if (j == dt.Columns.Count - 1)
{
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\"");
}
}if (i == dt.Rows.Count - 1)
{
JsonString.Append("}");
}else{
JsonString.Append("},");
}
}
JsonString.Append("]}");returnJsonString.ToString();
}else{return null;
}
}///
///将对象转化为Json字符串///
/// 源对象
/// json数据
public static string ObjToJson(this objectobj)
{
JavaScriptSerializer serialize= newJavaScriptSerializer();returnserialize.Serialize(obj);
}///
///将Json字符串转化为对象///
/// Json字符串
/// 目标对象
public static T JsonToObj(stringstrJson)
{
JavaScriptSerializer serialize= newJavaScriptSerializer();return serialize.Deserialize(strJson);
}///
///将对象转化为Json字符串(控制深度 )///
/// 源对象
/// 深度
/// json数据
public static string ObjToJson(this object obj, intrecursionDepth)
{
JavaScriptSerializer serialize= newJavaScriptSerializer();
serialize.RecursionLimit=recursionDepth;returnserialize.Serialize(obj);
}///
///将Json字符串转化为对象(控制深度 )///
/// Json字符串
/// 深度
/// 目标对象
public static T JsonToObj(string strJson, intrecursionDepth)
{
JavaScriptSerializer serialize= newJavaScriptSerializer();
serialize.RecursionLimit=recursionDepth;return serialize.Deserialize(strJson);
}///
///将DataTable转换为JSON字符串///
/// DataTable
/// json数据
public static stringDataTableToJson(DataTable dt)
{
Dictionary dic = new Dictionary();int index = 0;foreach (DataRow dr indt.Rows)
{
Dictionary result = new Dictionary();foreach (DataColumn dc indt.Columns)
{
result.Add(dc.ColumnName, dr[dc].ToString());
}
dic.Add(index.ToString(), result);
index++;
}returnObjToJson(dic);
}
}
}
json 反序列化 父子类型_json类序列化与反序列化参考相关推荐
- json 反序列化 父子类型_Json的序列化和反序列化
一.什么是Json: 中午肚子饿了,到餐厅点餐.向服务员点了几个菜,厨师根据用户的需求,开始烹饪食物,食物烹饪好后,怎么将食物呈现给用户呢?这时就需要用到盛放食物的碗了.用户拿到盛放食物的碗,就可以获 ...
- Int类型数据的序列化以及反序列化(与Java服务器通讯预热)
游戏前端,避免不了的跟服务器通讯,其实游戏的大部分逻辑都在服务端,并不在客户端,所以需要跟服务端通讯"协商"一些逻辑,既然通讯,就少不了的传输,传输之前又要序列化,这篇博客主要讲一 ...
- C# 实体类序列化与反序列化一 (XmlSerializer)
/// <summary>/// 实体类序列化的反序列化的类/// </summary>/// <typeparam name="T">< ...
- json 反序列化 父子类型_Jaskson精讲第7篇-类继承关系下的JSON序列化与反序列化JsonTypeInfo...
Jackson是Spring Boot(SpringBoot)默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的, ...
- spring boot添加 LocalDateTime 等 java8 时间类序列化和反序列化的支持
由于项目将原有的 Date类型的字段改造为 LocalDate,LocalDateTime,LocalTime 类型, 发现 spring 对项目的时间格式无法自动转换,故需手动配置下. 在sp ...
- fileinputstream自定义类序列化和反序列化_Rest Assured篇:Java中的序列化和反序列化...
点击上方蓝字设为星标 每天傍晚伴你一起成长! Java 中的序列化和反序列化是一个重要的编程概念.它适用于所有主要的编程语言.在本章中,我们将尝试在Java语言的上下文中理解此概念.在本章的最后,我们 ...
- 程序验证Jackson反序列化的规则、Jackson序列化与反序列化关键方法程序详细分析
目录 0. 为什么要做这个分析 1. Jackson反序列化时,无参构造.有参构造的执行顺序[附程序截图] 1.1 没有无参构造时: 1.2 无参构造和有参构造方法都有的时候先走无参构造: 2. Ja ...
- java序列化和反序列化对象_java中的序列化与反序列化,还包括将多个对象序列化到一个文件中...
package Serialize; /** * Created by hu on 2015/11/7. */ //实现序列化必须实现的接口,这就是一个空接口,起到标识的作用 import java. ...
- java反序列化多个对象_java 序列化与反序列化多个对象 抛出异常
jdk 1.8 IEDA 设置可以追加写入后,向目标文件序列化多个同一对象,再序列化出来时,因为反序列化时头部信息只读取一次,报出异常. 请问该怎么解决?或者代码写的有问题? import java. ...
最新文章
- 为什么要进行数据归一化
- SpringBoot整合MQTT服务器实现消息的发送与订阅(推送消息与接收推送)
- python怎么去学_Python第一步的学习,前辈告诉你怎么去学
- Spring Boot MyBatis配置多种数据库
- java网络图片与二进制字符串相互转换
- 信息学奥赛一本通 1226:装箱问题 | OpenJudge NOI 4.6 19:装箱问题
- Hive UDF 中使用hdfs中的文件
- spark中dataframe解析_Spark 结构流处理介绍和入门教程
- python用scrapy爬虫豆瓣_Python-用Scrapy爬取豆瓣电影
- 【推荐算法】知识驱动的智能化推荐算法(附交流视频和PPT下载链接)
- hibernate_Restrictions用法 .
- WIN10电脑如何显示控制面板
- 黑洞时间公式,为根号内为负是什么意思
- 通俗地告诉你:为什么Dijkstra算法是正确的?
- QQ获取群链接、二维码
- 怎样做好微商 怎样推广引流客源效果好
- 逻辑推理判断 —— 每周一测(智者参与)
- jenkins+svn+脚本实现CIDI
- 数据库笔试面试(第一版)——根据题目完成以下50道SQL语句
- Ubuntu出现“dpkg: 依赖关系问题使得libbsd0:i386的配置工作不能继续”错误
热门文章
- 异常 Cannot resolve class or package
- Tomcat中出现“RFC 7230 and RFC 3986“错误的解决方法
- IDEA——找不到或无法加载主类的一种暴力解决方法
- 我所碰到的面试题之------前端常见浏览器兼容性问题解决方案---
- 共享打印机出错,错误代码0x00000bcb解决方法汇总
- 我应该如何处理MySQL中的--secure-file-priv?
- ArrayList和Vector有什么区别?
- 什么是TypeScript?为什么我要用它代替JavaScript? [关闭]
- 如何检查JavaScript中的数字是否为NaN?
- 如何在XML中注释掉一个标签块?