.net从网络接口地址获取json,然后解析成对象(一)
整理代码,今天遇到一个问题,就是从一个场景接口获取json,然后解析成对象。之前的时候都好好的,这次返回的json字符串里,由于字符编码的问题,格式上不能转换。一直以为是解析的过程编码有误,试了utf-8,gb2312,Default、Unicode,发现都不行,转回头去找获取的时候字符编码,发现是gbk,那就了然了。果断统一改成utf-8之后,数据获取就正常了。
这段代码从获取到解析,还不是很熟练,所以把整个过程都捋一遍。
首先是根据网络地址和参数获取的方法:
public static string CreateOrderList(string _tid, string _dateFrom, string _dateTo, string _state, int _page)
{
try
{
StringBuilder serviceUrl = new StringBuilder();
serviceUrl.Append("http://10.10.10.10/queryOrderOne?");
serviceUrl.AppendFormat("tid={0}&createDateFrom={1}&createDateTo={2}&pageNum={4}&pageSize=10&orderState={3}", _tid, _dateFrom, _dateTo, _state, _page);
string _result = ExcuteGet(serviceUrl.ToString(),"");
return _result;
}
catch (Exception e)
{
AddLog(_tid, "获取订单List异常:" + e.Message, "GetOrderList");
return "";
}
}
ExcuteGet方法是获取地址的具体方法,代码如下:
public static string ExcuteGet(string serviceUrl, string ReqInfo)
{
using (null)
{
ServicePointManager.ServerCertificateValidationCallback += ValidateServerCertificate;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceUrl);
request.CookieContainer = new CookieContainer();
request.Headers.Add("userName", "test"); //设置信息头用户名
request.Headers.Add("password", ""); //设置信息头密码
request.KeepAlive = true;
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded";
//添加发送数据
Encoding encoding = Encoding.GetEncoding("utf-8");
if (!ReqInfo.Equals(""))
{
ReqInfo = "request=" + ReqInfo;
byte[] postData = encoding.GetBytes(ReqInfo);
request.ContentLength = postData.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(postData, , postData.Length);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//获取返回数据
Stream responseStream = response.GetResponseStream();
if (responseStream == null) return "";
StreamReader streamReader = new StreamReader(responseStream, encoding);
string retString = streamReader.ReadToEnd();
streamReader.Close();
responseStream.Close();
return retString;
}
}
还有一部分:
private static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
}
之后就是解析了,方法如下:
public static List<OrderList> GetOrderIList(string _dStrat, string _dEnd, string _tid, string _billState, int _page)
{
using (null)
{
try
{
string _jsonResult = CreateOrderList(_tid, _dStrat, _dEnd, _billState, _page);
OrderList _addResult = _jsonResult.JsonTodeserialize<OrderList>(Encoding.GetEncoding("utf-8"));
List<OrderList> _searchList = new List<OrderList>();
_searchList.Add(_addResult);
return _searchList;
}
catch (Exception)
{
return new List<OrderList>();
}
}
}
orderlist对象如下:
public class OrderList
{
public List<resultList> resultList { get; set; }
public string totalRecord { get; set; }
public string totalPage { get; set; }
}
public class resultList
{
public string orderState { get; set; }
public string Name { get; set; }
public string orderNum { get; set; }
public string productTypes { get; set; }
}
.net从网络接口地址获取json,然后解析成对象(一)的更多相关文章
- .net从网络接口地址获取json,然后解析成对象(二)
整理代码,这是第二种方法来读取json,然后反序列化成对象的,代码如下: public static Order GetOrderInfo(string _tid, string _orderNo) ...
- C#将json字符串解析成对象
首先我们在客户端生成json字符串,通过ajax把该字符串传到服务器端 //这是一个以id,email,age的json字符串 var jdata="[{\"id\&quo ...
- java操作JSON字符串转换成对象的时候如何可以不建立实体类也能获取数据
引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson& ...
- VBScript把json字符串解析成json对象的2个方法
这篇文章主要介绍了VBScript把json字符串解析成json对象的2个方法,本文通过MSScriptControl.ScriptControl和jscript实现,需要的朋友可以参考下 asp/v ...
- json 字符串转换成对象,对象转换成json字符串
json 字符串转换成对象,对象转换成json字符串 前端: 方法一: parseJSON方法: [注意jquery版本问题] var str = '{"name":&qu ...
- .net 4中使用 dynamic,将json字符串转成对象的 万能方法。
在.net 4中增加了对弱类型的支持.为和弱类型的对象进行数据交换提供了方法.我们常常会遇到将json字符串转成对象的情景,虽然可以使用 JavaScriptSerializer 或者 DataCon ...
- JSON字符串转换成对象时候 需要有默认构造器 因为这是通过反射创建的 反射是先通过默认构造器创建对象的
JSON字符串转换成对象时候 需要有默认构造器 因为这是通过反射创建的 反射是先通过默认构造器创建对象的
- jQuery AJAX获取JSON数据解析多种方式示例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JSON字符串解析成JSON数据格式
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...
随机推荐
- .net 代理类(WebService代理类的详解 )
http://hi.baidu.com/654085966/item/53ee8c0f108ad78202ce1b1d -----------转自 客户端调用Web Service的方式我现在知道 ...
- 使用Fiddler查看APP的请求接口、接口参数和返回值的方法
1.下载Fiddler,然后安装成功后. 2.开启代理的设置 3.查看电脑的ip, 4.建立一个wifi局域网,什么360wifi,猎豹wifi,腾讯wifi都可以,用安装手机接入到这个局域网的wif ...
- GsonFormat的使用 (转)
一.Android Studio快速添加Gson 具体操作: 1.File->Project Structure: 2.app->Dependencies->&qu ...
- Allowing GPU memory growth
By default, TensorFlow maps nearly all of the GPU memory of all GPUs (subject to CUDA_VISIBLE_DEVICE ...
- laravel excel导出调节列宽度,对某列中数据颜色处理
//$cellData 表格标题栏各名称数组 //$result 表格内容数组//$items getForDataTable得到的表格数据 $result = array_merge($cellDa ...
- Asp.net中GridView使用详解(很全,很经典 转来的)
Asp.net中GridView使用详解 效果图参考:http://hi.baidu.com/hello%5Fworld%5Fws/album/asp%2Enet中以gv开头的图片 l ...
- stable
stable - 必应词典 美['steɪb(ə)l]英['steɪb(ə)l] n.马厩:马房:(养马作特定用途的)养马场 adj.稳定的:稳固的:牢固的:稳重的 v.使(马)入厩:把(马)拴在马厩 ...
- kraken-ejs创建一个项目【学习札记】
Keep in Touch. 保持联络. Who’s calling? 是哪一位? You did right. 你做得对. You set me up! 你出卖我! kraken-express-e ...
- java NIO buffer --directBuffer (2)
HeapBuffer ----堆缓冲 :其实是在java 的内存模型中,java 虚拟机可以直接管控的 DirectBuffer ---直接缓冲 :使用的是native ,与操作系统挂钩,调用的 ...
- TableView下拉刷新崩溃解决办法
return cell;上边加判断 if(self.dataArray.count<1){ return cell; }