C# url的编码解码,xml和json的序列化和反序列化
参考中国慕课网dot net web编程应用程序实践
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
using System.Runtime.Serialization.Json; namespace CommonFunctions
{
public class Functions
{
/// <summary>
/// 对url中待传值进行编码
/// </summary>
/// <param name="decodeStr">待编码的字符串</param>
/// <returns></returns>
public static string EncodeUrl(string decodeStr)
{
byte [] buf = Encoding.UTF8.GetBytes(decodeStr);
string res = "";
foreach(byte b in buf)
{
res += b.ToString("X2");
}
return res;
} /// <summary>
/// 对url进行解码
/// </summary>
/// <param name="encodeStr">待解码的字符串</param>
/// <returns></returns>
public static string DecodeUrl(string encodeStr)
{
int count = encodeStr.Length / 2;
byte[] buf = new byte[count];
for(int i = 0; i < count; i++)
{
buf[i] = byte.Parse(encodeStr.Substring(i * 2, 2),System.Globalization.NumberStyles.HexNumber);
}
return Encoding.UTF8.GetString(buf);
} /// <summary>
/// xml序列化
/// </summary>
/// <typeparam name="T">待序列化得对象类型</typeparam>
/// <param name="obj">待序列化的对象</param>
/// <returns></returns>
public static string SerializerXml<T>(T obj)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
xmlSerializer.Serialize(ms, obj);
return Encoding.UTF8.GetString(ms.ToArray());
} /// <summary>
/// xml反序列化
/// </summary>
/// <typeparam name="T">待反序列化的对象类型</typeparam>
/// <param name="xmlStr">待反序列化的xml字符串</param>
/// <returns></returns>
public static T DeserializerXml<T>(string xmlStr)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
byte[] buf = Encoding.UTF8.GetBytes(xmlStr);
MemoryStream ms = new MemoryStream(buf);
return (T)xmlSerializer.Deserialize(ms);
} /// <summary>
/// json序列化
/// </summary>
/// <typeparam name="T">待序列化的对象类型</typeparam>
/// <param name="obj">待序列化的对象</param>
/// <returns></returns>
public static string SerializerJson<T>(T obj)
{
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
jsonSerializer.WriteObject(ms, obj);
return Encoding.UTF8.GetString(ms.ToArray());
} /// <summary>
/// json反序列化
/// </summary>
/// <typeparam name="T">待反序列化的对象类型</typeparam>
/// <param name="jsonStr">待反序列化的json字符串</param>
/// <returns></returns>
public static T DeserializerJson<T>(string jsonStr)
{
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T));
byte[] buf = Encoding.UTF8.GetBytes(jsonStr);
MemoryStream ms = new MemoryStream(buf);
return (T)jsonSerializer.ReadObject(ms);
}
}
}
C# url的编码解码,xml和json的序列化和反序列化的更多相关文章
- Rest中的XML与JSON的序列化与反序列化
#region 获取XML的序列化和反序列化 /// <summary> /// 对象进行序列化生成XML /// </summary> /// <typeparam n ...
- xml、json的序列化与反序列化
xml数据 : XmlSerializer.Serialize 与 XmlSerializer.Deserialize,使用起来稍有些复杂,需要对 “实体模型” 的“对应属性” 进行 节点特 ...
- .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)
.net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml) 首先设置 Startup.cs 文件 配置 ConfigureServices services .Add ...
- [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化
[.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化 本节导读: 介绍JSON的结构,在JS中的使用.重点说明JSON如何在.N ...
- C#中的Json的序列化和反序列化
Json是一种通用的数据格式,我们在数据交换的时候,经常会用到,下面介绍c#中的json序列化和反序列化,当然也可用在asp.net,silverlight,wpf中.我们在下面实例讲解如何进行Jso ...
- ASP.NET MVC 网站开发总结(六)——简谈Json的序列化与反序列化
首先,先简单的谈一下什么是序列化与反序列化,序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通 ...
- Json的序列化与反序列化
对于Json的序列化和反序列化,如果自己编写源代码来实现的话,很复杂很烦,所以我采用的是使用别人已经写好的引用文件.这类文件网上有很多,我用的是LitJson,当然Newtonsoft也可以,但后者需 ...
- Newtonsoft.Json 的序列化与反序列化
首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列化.创建一 ...
- Asp.net中Json的序列化和反序列化(一)
JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...
随机推荐
- Windows脚本转换Liunx识别并执行
1.执行安装: yum install -y dos2unix 插件2.执行 dos2unix test.sh3.赋值权限 chmod +x test.sh
- 浅谈强连通分量(Tarjan)
强连通分量\(\rm (Tarjan)\) --作者:BiuBiu_Miku \(1.\)一些术语 · 无向图:指的是一张图里面所有的边都是双向的,好比两个人打电话 \(U ...
- CDH6.3.0下Apache Atlas2.1.0安装与配置
CDH6.3.0下Apache Atlas2.1.0安装与配置 0. 说明 文中的${ATLAS_HOME}, ${HIVE_HOME} 环境变更需要根据实际环境进行替换. 1. 依赖 A. 软件依赖 ...
- Spark性能调优九之常用算子调优
1.使用mapPartitions算子提高性能 mapPartition的优点:使用普通的map操作,假设一个partition中有1万条数据,那么function就要被执行1万次,但是使用mapPa ...
- 卷积涨点论文 | Asymmetric Convolution ACNet | ICCV | 2019
文章原创来自作者的微信公众号:[机器学习炼丹术].交流群氛围超好,我希望可以建议一个:当一个人遇到问题的时候,有这样一个平台可以快速讨论并解答,目前已经1群已经满员啦,2群欢迎你的到来哦.加入群唯一的 ...
- .NET Core AWS S3云存储
前言 最近有需要用到AWS S3云存储上传附件,这里对利用.NET或.NET Core在调用SDK APi需要注意的一点小问题做个记录,或许能对后续有用到的童鞋提供一点帮助 AWS S3云存储 官方已 ...
- iOS崩溃治理--开篇
去年我开始负责iOS崩溃治理的工作,从原来的万分之五崩溃率,一直到现在的万分之一左右的崩溃率,期间踩了很多坑,因此想和大家分享一下,希望能对大家有所帮助,也欢迎大家私信交流. 如果你打算开始治理崩溃的 ...
- 《改善python程序的91个建议》读书笔记
推荐 <改善Pthon程序的91个建议>是从基本原则.惯用方法.语法.库.设计模式.内部机制.开发工具和性能优化8个方面深入探讨编写高质量python代码的技巧.禁忌和最佳实践. 读书就如 ...
- React Native Android 环境搭建
因为工作需要,最近正在学习React Native Android.温故而知新,把学习的内容记录下来巩固一下知识,也给有需要的人一些帮助. 需要说明的是,我刚接触React Native也不久,对它的 ...
- SpringBoot全局时间转换器
SpringBoot全局时间转换器 日常开发中,接收时间类型参数处处可见,但是针对不同的接口.往往需要的时间类型不一致 @DateTimeFormat(pattern = "yyyy-MM- ...