参考中国慕课网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的序列化和反序列化的更多相关文章

  1. Rest中的XML与JSON的序列化与反序列化

    #region 获取XML的序列化和反序列化 /// <summary> /// 对象进行序列化生成XML /// </summary> /// <typeparam n ...

  2. xml、json的序列化与反序列化

    xml数据 : XmlSerializer.Serialize   与  XmlSerializer.Deserialize,使用起来稍有些复杂,需要对 “实体模型” 的“对应属性”  进行  节点特 ...

  3. .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)

    .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml) 首先设置 Startup.cs 文件 配置 ConfigureServices services .Add ...

  4. [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化

    [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化 本节导读: 介绍JSON的结构,在JS中的使用.重点说明JSON如何在.N ...

  5. C#中的Json的序列化和反序列化

    Json是一种通用的数据格式,我们在数据交换的时候,经常会用到,下面介绍c#中的json序列化和反序列化,当然也可用在asp.net,silverlight,wpf中.我们在下面实例讲解如何进行Jso ...

  6. ASP.NET MVC 网站开发总结(六)——简谈Json的序列化与反序列化

    首先,先简单的谈一下什么是序列化与反序列化,序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通 ...

  7. Json的序列化与反序列化

    对于Json的序列化和反序列化,如果自己编写源代码来实现的话,很复杂很烦,所以我采用的是使用别人已经写好的引用文件.这类文件网上有很多,我用的是LitJson,当然Newtonsoft也可以,但后者需 ...

  8. Newtonsoft.Json 的序列化与反序列化

    首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列化.创建一 ...

  9. Asp.net中Json的序列化和反序列化(一)

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

随机推荐

  1. python绘折线图

    # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt #X轴,Y轴数据 y = [0.3,0.4,2,5 ...

  2. JavaSE01-概述

    1.1 Java语言发展史 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford University Networ ...

  3. Java后端使用socketio,实现小程序答题pk功能

    在使用socket.io跟前端通信过程中,出现了一系列问题,现做下记录. 一.功能需求是,在小程序端,用户可相互邀请,进入房间后进行答题PK.实现方法是,用户点击邀请好友,建立连接,查询当前是否有房间 ...

  4. 洛谷题解 P1051 【谁拿了最多奖学金】

    其实很水 链接: P1051 [谁拿了最多奖学金] 注意: 看好信息,不要看漏或看错因为信息很密集 AC代码: 1 #include<bits/stdc++.h>//头文件 2 using ...

  5. Flink如何做维表关联?

    使用 RichAsyncFunction 加 CacheBuilder CacheBuilder.newBuilder() //最多存储10000条 .maximumSize(10000) //过期时 ...

  6. Typora + 七牛云图床快速配置,告别手动上传图片!

    大家好,我是zeroing,本文将介绍关于 Typora 软件如何配置七牛云图床,实现图片即插即用,可以先看一下最终效果! 可以看到图片借助 Typora 软件自动将本地存储转化为第三方图片网络链接 ...

  7. 【Java】Java Win10环境搭建--JDK、Eclipse

    win10安装Java JDK环境及Eclipse安装使用(Hello world) win10环境下安装Java环境,对于小白来说简直是头疼,因为Java内部环境有着JDK和JRE两块,互相牵扯着很 ...

  8. ceph如何快速卸载所有osd及擦除磁盘分区表和内容并重新加入

    我的ceph集群中有4台服务器,16个osd,因为某些原因,集群中的数据都不要了,但是集群要保留给新的应用使用,集群现有的osd情况如下 [root@ceph-host-01 ~]# cat /etc ...

  9. zabbix学习(一)——LNMP环境搭建及zabbix安装

    第一部分:LNMP环境搭建 一.环境说明: OS:   centos7.6_x64nginx:nginx-1.16.0php:   php-7.1.11mysql:mysql-5.6.44 zabbi ...

  10. 2020年Spring Cloud最后一个大版本发布!

    2020年12月22日,Spring Cloud 2020.0 正式发布GA版本! 版本说明 每次Spring Cloud的大版本发布,我们都要先弄清楚,它对应的Spring Boot版本是哪个! 该 ...