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 常用的帮助类的更多相关文章

  1. Android常用的工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Prefe ...

  2. Spring MVC常用的注解类

    一.注解类配置 要使用springmvc的注解类,需要在springmvc.xml配置文件中用context:component-scan/扫描:  二.五大重要的注解类 1.RequestMapp ...

  3. Android常用的工具类(转)

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...

  4. 2013最新Android常用的工具类整理

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Pref ...

  5. Java开发常用Util工具类-StringUtil、CastUtil、CollectionUtil、ArrayUtil、PropsUtil

    字符串工具类 StringUtil.java package com.***.util; /** * StringUtil * @description: 字符串工具类 **/ public clas ...

  6. [WinForm]WinForm跨线程UI操作常用控件类大全

    前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作.不过会有一个问题:就是涉及到跨线程操作UI元素. 相信才开始接触的人一定会遇上这个问题. 为了解决这个问 ...

  7. vs里根据json快速创建对应类的方法

    有时候,我们在调用别人接口的时候,服务端返回了一个json格式的字符串,我们要获取json里面的数据的话一般有两种方式: 1.通过正则 2.反序列化成一个对象 第一种方式这里不再多说,主要说一下第二种 ...

  8. 【转】C#中将JSon数据转换成实体类,将实体类转换成Json

    http://wo13145219.iteye.com/blog/2022667 http://json2csharp.chahuo.com/ using System; using System.C ...

  9. 几种常用的JS类定义方法

    几种常用的JS类定义方法   // 方法1 对象直接量var obj1 = {    v1 : "",    get_v1 : function() {        return ...

随机推荐

  1. 性能调优之MySQL篇一:MySQL性能计数器

    计数器 计数器分析 Threads_connected 表示当前有多少个客户连接该mysql服务器,连接数是否过多,网络是否存在问题,它是动态变化的,当达到最大连接数时,数据库系统就不能提供更多的连接 ...

  2. 小练手:用HTML5 Canvas绘制谢尔宾斯基三角形

    文章首发于我的知乎专栏,原地址:https://zhuanlan.zhihu.com/p/26606208 以前看到过一个问题:谢尔宾斯基三角形能用编程写出来么?该怎么写? - 知乎,在回答里,各方大 ...

  3. Java Calendar类总结

    在实际项目当中,我们经常会涉及到对时间的处理,例如登陆网站,我们会看到网站首页显示XXX,欢迎您!今天是XXXX年....某些网站会记录下用户登陆的时间,比如银行的一些网站,对于这些经常需要处理的问题 ...

  4. qq第三方登录网站接口

    网站如何实现QQ登录功能 | 浏览:11029 | 更新:2013-12-05 10:09 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅为你的电脑系统,选一个靠谱师傅! 如果想让网站实现 ...

  5. Redis学习笔记之Redis中5种数据结构的使用场景介绍

    原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 redis 中一共有5种数据结构 ...

  6. JavaScript&jQuery获取url参数方法

    JavaScript&jQuery获取url参数方法 function getUrlParam(name){ var reg = new RegExp("(^|&)" ...

  7. mysql命令行创建数据库

    create database publiccms; grant all privileges on publiccms.* to root@localhost identified by 'publ ...

  8. php下获取http状态的实现代码

    在项目开发中,有时我们需要知道远程的URL地址是否能访问正常,判断其正常与否后进行下一步的操作,那么在PHP中如何获取远程HTTP的状态呢? 文件preg.php header("HTTP/ ...

  9. 20144303 《Java程序设计》第九周学习总结

    20144303 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 一.JDBC入门: JDBC全名Java DataBase Connectivity,是java联机数据库 ...

  10. AVL树 - 学习笔记

    2017-08-29 14:35:55 writer:pprp AVL树就是带有平衡条件的二叉查找树.每个节点的左子树和右子树高度相差最多为1的二叉查找树 空树的高度定为-1 对树的修正称为旋转 对内 ...