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 ...
随机推荐
- laravel 图片上传 ajax 方式
laravel 图片上传 //后台轮播图上传 $("#img-upload").on('submit',function(e){ e.preventDefault(); var f ...
- MVC中一个Form多个submit在controller中如何区分提交的是那个submit(如:登陆和注册)
1. 用Html.BeginForm(ActionName,ControllerName,Post)来实现controller-action的路由, 2. Form里的每个input的name值统一, ...
- 三年半Java后端面试经历
经过半年的沉淀,加上对MySQL,redis和分布式这块的补齐,终于开始重拾面试信心,再次出征. 鹅厂 面试职位:go后端开发工程师,接受从Java转语言 都知道鹅厂是cpp的主战场,而以cpp为背景 ...
- 20145314郑凯杰 《Java程序设计》第2周学习总结 代码开始!
---恢复内容开始--- 20145314郑凯杰 <Java程序设计>第2周学习总结 代码开始! 教材学习内容总结 跟着教材的顺序开始总结我学过的内容: 1编辑.编译.运行教材上代码 这部 ...
- Java搞笑注释(佛-)
// _ooOoo_ // o8888888o // 88" . "88 // (| -_- |) // O\ = /O // ____/`---'\____ // . ' \\| ...
- Painter's Problem
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5378 Accepted: 2601 Description There ...
- MongoDB-与Python交互
与python交互 点击查看官方文档 安装python包 进入虚拟环境 sudo pip install pymongo 或源码安装 python setup.py 引入包pymongo import ...
- CORE MVC 自定义认证
微软的认证体系,集成了EF,和它的表结构,对于我们已有的系统,或者想高度自定义的人,该怎么办呢? 答案在: https://docs.microsoft.com/en-us/aspnet/core/s ...
- SEM关键词的三种分类方式
关键词分类是为了使sem账户搭建结构清晰便于管理关键词.基于对需求人群的深入分析,每个账户都有其独特的分类方式,比如招商加盟行业更多的是地域分类,品牌类企业通常用词性分类即可,而冷门行业用人群分类比较 ...
- AccessTokens
https://www.oauth.com/oauth2-servers/access-tokens/ Access tokens are the thing that applications us ...