C# http请求 + json序列化反序列化
来源:互联网 发布:网络教育专升本 编辑:程序博客网 时间:2024/05/16 04:17
最近公司游戏需要和php后台实现邮件功能,就在搞http请求和json的解析
其实很简单,就是一个函数,给出代码,这个是getHttp的,Post和另外三种模式的自己去网上搜索就行了
public string GetHttp(string url)
{
try
{
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "GET";
httpWebRequest.Timeout = 20000;
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
string responseContent = streamReader.ReadToEnd();
httpWebResponse.Close();
streamReader.Close();
return responseContent;
}
catch (Exception ex)
{
//Log.Error(ex.ToString());
return "0";
}
}
然后就是json的序列化和反序列化
首先引入命名空间
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
然后就是string result =GetHttp(URL);
这个URL就是你的http请求的网址。
然后就是解析了
JObject jo = (JObject)JsonConvert.DeserializeObject(result );
我是在VS中查看好的,我们访问后是这样的,
{"code":0,"data":4}
所以解析的时候就是:
string code = jo["code"].ToString();
string data = jo["data"].ToString();
然后这个code就是字符串"0" ,data就是字符串"4"
然后问题来了,如果是数组怎么解析呢?
也是一样的
假设data里面是一个数组,json中数组是用 [ ] 起来的,[ ] 里面的是包含很多个元素的数组!!!,举例一下就是
{"code":0,"data":[{"id":"5263","award":"0,11111","dateTime":"2017-07-27 16:09:23","mail":"3","state":"0","label":"3","url":"","platform":"0"},{"id":"5264","award":"0,11111","dateTime":"2017-07-27 16:05:02","mail":"2","state":"0","label":"2","url":"","platform":"0"},{"id":"5265","award":"0,11111","dateTime":"2017-07-27 16:03:00","mail":"1","state":"0","label":"1","url":"","platform":"0"},{"id":"5266","award":"0,11111","dateTime":"2017-07-27 14:59:12","mail":"1","state":"0","label":"1","url":"","platform":"0"}]}
然后上面这段东西解析的代码就是
JArray ja = (JArray)JsonConvert.DeserializeObject(data);
这时候ja就是普通的可以识别的数组了
然后ja[0]["id"]就是你数组第一个元素的id!!
简单吧!
下面是全部代码
JObject jo = (JObject)JsonConvert.DeserializeObject(EmailListResult);
string code = jo["code"].ToString();
string data = jo["data"].ToString();
if (data != null)
{
JArray ja = (JArray)JsonConvert.DeserializeObject(data);
if (ja != null)
{
for (int i = ja.Count - 1; i >= 0; --i)
{
MailItem mailInfo = new MailItem();
mailInfo.id = int.Parse(ja[i]["id"].ToString());
mailInfo.award = ja[i]["award"].ToString();
mailInfo.sendtime = ja[i]["dateTime"].ToString();
mailInfo.content = ja[i]["mail"].ToString();
mailInfo.attachStatus = int.Parse(ja[i]["state"].ToString());
mailInfo.title = ja[i]["label"].ToString();
mailInfo.labelPic = ja[i]["url"].ToString();
receiveMailList.Add(mailInfo);
}
}
}
- C# http请求 + json序列化反序列化
- Http Post发送json序列请求(json序列化和反序列化)
- Http Post发送json序列请求(json序列化和反序列化)
- C# 序列化/反序列化 json
- C#序列、反序列化json对象
- c#序列化json 和Jquery反序列化json
- c#中的Json的序列化和反序列化
- C#对JSON的序列化和反序列化
- C#中的Json的序列化和反序列化
- C#实现JSON序列化与反序列化介绍
- C# Json序列化与反序列化
- C#实现JSON序列化与反序列化介绍
- C# JSON字符串序列化与反序列化
- C# 二进制、Xml、Json序列化和反序列化
- c# Json序列化和反序列化
- C# Json序列化与反序列化
- C#操作Json的序列化和反序列化
- C# JSON字符串序列化与反序列化
- [LeetCode]111. Minimum Depth of Binary Tree
- Android monkey 使用及日志分析
- 介绍一点怎么样在网页建设中用到的非常实用方法
- Linux的 sort,uniq,cut,wc命令详解
- Revit API 之 如何查找材质属性所对应的中文名称
- C# http请求 + json序列化反序列化
- Java 8 笔记
- 阿里云短信发送接口,附源码!
- Swift入门之数据类型
- UVA
- C: 从系统中获取挂载信息分区的通用函数
- falsk-bootstrap设置本地路径
- 利用OLAMI在unity游戏中加入中文语音控制(一)
- Java中char转string,string转char