博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# 利用结构体获取json数据
阅读量:7079 次
发布时间:2019-06-28

本文共 1515 字,大约阅读时间需要 5 分钟。

最近做微信支付,要获取用户的openid,调用接口后返回的是json格式的数据,我想在c#后台把数据逐一取出,网上查了查,找到以下方法:

1.首先调用接口,要有一个post数据到指定url并返回数据的函数:

protected string PostXmlToUrl(string url, string postData)    {        string returnmsg = "";        using (System.Net.WebClient wc = new System.Net.WebClient())        {            returnmsg = wc.UploadString(url, "POST", postData);        }        return returnmsg;    }

post的数据格式可以是

url的参数格式(a=1&b=2&c=3....)

xml格式(<xml>....</xml>)

返回的数据格式由接口确定。

2.方法调用:

string post_data = "appid=" + appId + "&secret=" + secret + "&code=" + code + "&grant_type=authorization_code";        string requestData = PostXmlToUrl("https://api.weixin.qq.com/sns/oauth2/access_token", post_data);

微信这个接口返回的数据是json格式的,所以得到的requestData就是一段json字符串:

{   "access_token":"ACCESS_TOKEN",   "expires_in":7200,   "refresh_token":"REFRESH_TOKEN",   "openid":"OPENID",   "scope":"SCOPE"}

返回的数据里面有我需要的openid,接下来利用结构体把openid取出。先定义结构体:

public struct authorization    {        public string access_token { get; set; }  //属性的名字,必须与json格式字符串中的"key"值一样。        public string expires_in { get; set; }        public string refresh_token { get; set; }        public string openid { get; set; }        public string scope { get; set; }    }

利用序列化数据的类JavaScriptSerializer将json数据转化为对象类型:

JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类        authorization auth = js.Deserialize
(requestData); //将json数据转化为对象类型并赋值给auth

这样一转化,对象auth里面的4个属性就会得到相应的值,如此,我就获取到了接口返回来的openid,就可以在需要的地方使用它了:

wxobPay.openid = auth.openid;

 

转载地址:http://mnpml.baihongyu.com/

你可能感兴趣的文章
Node.js 10.0和NPM 6发布,强化安全性
查看>>
关于Neo4j 强连通分量算法,你了解多少?
查看>>
Fake 5提供.NET Core支持
查看>>
Mozilla开发全新的公开网络API WebXR 来实现增强现实
查看>>
Visual Studio 2017 15.9预览版3支持ARM64 for UWP
查看>>
LLVM3.8停止了旧Windows版本,取消Autoconf,改进Clang
查看>>
HTTP将死?又拍云布局HTTPS 护航网页安全加速
查看>>
Microsoft 365及应用开发的未来:微软BUILD 2018大会第二天主题演讲
查看>>
白话中台战略:中台是个什么鬼?
查看>>
Java值类型设计进展
查看>>
《Spark大数据分析》一书的书评和采访
查看>>
The Agile Mind-Set作者访谈
查看>>
Mads Torgersen介绍C# 7及后续版本新特性
查看>>
高通与华为短暂和解,理智看待国内5G现状
查看>>
Gartner调查:AI将成为企业颠覆的重要力量
查看>>
爱立信电信软件的持续交付
查看>>
微软必应从.NET Core 2.1获得了性能提升
查看>>
DevOps实战:Graphite监控上手指南
查看>>
SSPL的MongoDB再被抛弃,GUN Health也合流PostgreSQL
查看>>
知乎pure render专栏创办人@流形:选择React这条路,很庆幸
查看>>