C# url的编码解码,xml和json的序列化和反序列化
2024-10-19 02:52:06
参考中国慕课网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);
}
}
}
最新文章
- Java EE之数据库连接与插入
- Linux学期总结
- 课堂所讲整理:输入输出流(I/O)
- PHP获取服务器的mac地址类
- mysqldump 备份原理9
- ICMP 实现
- php的header()函数前有echo输出情况分析
- canvas元素大小与绘图表面大小
- ToggleButton --------- 按钮实现开关效果
- 模拟美萍加密狗--Rockey2虚拟狗(三)
- [转载] iOS开发分辨率那点事
- Java 审查基调
- Lua学习(2)——表达式
- 关于php中,记录日志中,将数组转为json信息记录日志时遇到的问题总结
- JavaScript(五)语句
- scrapy_随机user-agent
- shiro初识
- 解决mysql for docker容器报错:Authentication plugin &#39;caching_sha2_password&#39; cannot be loaded
- 腾讯云部署golang flow流程,vue.js+nginx+mysql+node.js
- JavaScript--XML DOM 总结