C# 处理 JSON 常用的帮助类
C#请求接口的方法,具体代码:
首先需要添加引用和第三方的组件,具体如下:

引用命名空间:
using System.IO;
using Newtonsoft.Json.Linq;
using System.Web.Script.Serialization;
常用到的两种请求方式的代码类,具体实现如下
/// <summary>
/// Post 带有参数请求Json的方法
/// </summary>
/// <param name="PARAMETER">请求的参数</param>
/// <param name="POSTURL">请求的URL地址</param>
/// <returns>返回json字符串</returns>
public static JObject RequestJsonByUrlPost(string PARAMETER, string POSTURL)
{
JObject jo = new JObject();
try
{
UTF8Encoding encoding = new UTF8Encoding();
byte[] data = encoding.GetBytes(PARAMETER);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(POSTURL);
myRequest.Method = "Post";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
newStream.Write(data, , data.Length);
newStream.Close();
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
string sJson = reader.ReadToEnd();
jo = JObject.Parse(sJson);
}
catch (Exception ex)
{
MessageUtil.ShowException("系统错误,请联系管理员!", ex);
}
return jo;
}
/// <summary>
/// Get 请求的方法
/// </summary>
/// <param name="geturl">请求的URL地址</param>
/// <returns>返回json字符串</returns>
public static JObject RequestJsonByUrlGet(string geturl)
{
JObject jo = new JObject();
try
{
HttpWebRequest http = WebRequest.Create(geturl) as HttpWebRequest;
HttpWebResponse response = (HttpWebResponse)http.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string sJson = reader.ReadToEnd();
http.Abort();
ArrayList ObjList = new ArrayList();
//将字符串转换成Json对象
jo = JObject.Parse(sJson);
}
catch (Exception ex)
{
MessageUtil.ShowException("系统错误,请联系管理员!", ex);
}
return jo;
}
处理接口返回的 JSON 数据转换常用的帮助类,具体代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace HackMoney
{
public class JsonHelper
{ /// <summary>
/// 转换对象为JSON格式数据
/// </summary>
/// <typeparam name="T">类</typeparam>
/// <param name="obj">对象</param>
/// <returns>字符格式的JSON数据</returns>
public static string GetJSON<T>(object obj) {
string result = String.Empty;
try {
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer =new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) {
serializer.WriteObject(ms, obj);
result = System.Text.Encoding.UTF8.GetString(ms.ToArray());
}
} catch (Exception ex) {
throw ex;
}
return result;
}
/// <summary>
/// 转换List<T>的数据为JSON格式
/// </summary>
/// <typeparam name="T">类</typeparam>
/// <param name="vals">列表值</param>
/// <returns>JSON格式数据</returns>
public static string JSON<T>(List<T> vals) {
System.Text.StringBuilder st = new System.Text.StringBuilder();
try {
System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T)); foreach (T city in vals) {
using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) {
s.WriteObject(ms, city);
st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray()));
}
}
} catch (Exception ex) {
throw ex;
} return st.ToString();
}
/// <summary>
/// JSON格式字符转换为T类型的对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonStr"></param>
/// <returns></returns>
public static T ParseFormByJson<T>(string jsonStr) {
T obj = Activator.CreateInstance<T>();
using (System.IO.MemoryStream ms =
new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr))) {
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer =
new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
return (T)serializer.ReadObject(ms);
}
} public static string JSON1<SendData>(List<SendData> vals) {
System.Text.StringBuilder st = new System.Text.StringBuilder();
try {
System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(SendData)); foreach (SendData city in vals) {
using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) {
s.WriteObject(ms, city);
st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray()));
}
}
} catch (Exception ex) {
throw ex;
} return st.ToString();
} }
}
C# 处理 JSON 常用的帮助类的更多相关文章
- Android常用的工具类
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Prefe ...
- Spring MVC常用的注解类
一.注解类配置 要使用springmvc的注解类,需要在springmvc.xml配置文件中用context:component-scan/扫描:  二.五大重要的注解类 1.RequestMapp ...
- Android常用的工具类(转)
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...
- 2013最新Android常用的工具类整理
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Pref ...
- Java开发常用Util工具类-StringUtil、CastUtil、CollectionUtil、ArrayUtil、PropsUtil
字符串工具类 StringUtil.java package com.***.util; /** * StringUtil * @description: 字符串工具类 **/ public clas ...
- [WinForm]WinForm跨线程UI操作常用控件类大全
前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作.不过会有一个问题:就是涉及到跨线程操作UI元素. 相信才开始接触的人一定会遇上这个问题. 为了解决这个问 ...
- vs里根据json快速创建对应类的方法
有时候,我们在调用别人接口的时候,服务端返回了一个json格式的字符串,我们要获取json里面的数据的话一般有两种方式: 1.通过正则 2.反序列化成一个对象 第一种方式这里不再多说,主要说一下第二种 ...
- 【转】C#中将JSon数据转换成实体类,将实体类转换成Json
http://wo13145219.iteye.com/blog/2022667 http://json2csharp.chahuo.com/ using System; using System.C ...
- 几种常用的JS类定义方法
几种常用的JS类定义方法 // 方法1 对象直接量var obj1 = { v1 : "", get_v1 : function() { return ...
随机推荐
- 2017 计蒜之道 初赛 第三场 D. 腾讯狼人杀 (点边都带权的最大密度子图)
点边都带权的最大密度子图,且会有必须选的点. 求\(\frac{\sum w_e}{k*(2n-k)}\)的最大值,其中k为子图点数 设\[h(g) = \sum w_e - g*(2nk-k^2)\ ...
- iOS 性能优化之业务性能监控
业务性能监控, 在人工的在业务的开始和结束处打点上报,然后后台统计达到监控目的, 是性能优化里比较重要的一个维度.具体来说就是测试方法操作执行的时间损耗,可能是同步 也可能是异步的.测试的方法大概有如 ...
- 资产证券化(ABS)+ 特殊目的信托(SPV)
资产证券化是指以基础资产未来所产生的现金流为偿付支持,通过结构化设计进行信用增级,在此基础上发行资产支持证券(Asset-backed Securities, ABS)的过程,通过将有形或者无形资产作 ...
- 一键安装lnmp(1)
#!/bin/bash#author:zhaocl#Software directory:$pathpath=`pwd`cd $path. $path/cacti.sh. $path/nginx.sh ...
- python 切换工作路径 为指定文件夹
切换工作路径为了更好的在目录下面执行针对当前项目的命令 比如 git.svn .打包 等操作 关键命令: os.chdir() 切换到指定路径: # sys.path[0] 当前脚本路径 # 当前脚本 ...
- # 20145314《信息安全系统设计基础》期中复习总结 Part B
20145314<信息安全系统设计基础>期中复习总结 Part B 学习知识点内容总结 复习线索:http://group.cnblogs.com/topic/73069.html 本周的 ...
- 20145321 《Java程序设计》第10周学习总结
20145321 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程:网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输. IP地址:为了能够方便的识别网络上 ...
- linux内核第一二章总结
1 Linux内核简介 1 Unix的历史 1.Unix演化版实现了任务管理.换页机制.TCP/IP等新的特性. 2.Unix的特点: Unix很简洁,仅仅提供几百个系统调用并且有一个非常明确的设计目 ...
- C#的switch case注意
参数可以是 switch 语句中的 参数必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型. 所以用string也可以,6666
- Apache ab 测试结果的分析
以前安装好APACHE总是不知道该如何测试APACHE的性能,现在总算找到一个测试工具了.就是APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下.格式: ...