首页 新闻 会员 周边

C#调用网址,得到json,请问该怎么调用和解析网址得到的字符串

0
悬赏园豆:100 [已解决问题] 解决于 2016-07-15 09:53

这个别人给的网址

http://139.224.32.119:8612/appapi.php/Member/cardGetInfo.html?card=863100001100308137  

这是用浏览器打开得到的内容:

{"result":1,"info":{"id":"5746","name":"\u6850\u5e90\u4f53\u9a8c\u536120","nickname":"","creattime":"2016-06-23 16:43:53","password":"123456","pic":"","sex":"\u7537","email":"","phone":"","signature":""}}

请问用C#代码怎么调用这个网址的接口,并且解析的sex:男的?求大神指教

问题补充:

最好能把代码,写下来

IT_zl的主页 IT_zl | 初学一级 | 园豆:112
提问于:2016-07-14 11:22
< >
分享
最佳答案
1
var json;
using (WebClient wc = new WebClient())
{
    json = wc.DownloadString("url");
}

JObject model = JObject.Parse(json);
var sex = model["info"]["sex"];

JObject是Newtonsoft.Json的,你也可以使用其它library

收获园豆:100
RosonJ | 老鸟四级 |园豆:4910 | 2016-07-14 11:31

你的方法,挺不错的,解析出来是对的,问一下,你能用js告诉我代码怎么写吗?

IT_zl | 园豆:112 (初学一级) | 2016-07-15 09:38

@IT_zl: 

var sex;
$.ajax({
    url: 'http://139.224.32.119:8612/appapi.php/Member/cardGetInfo.html?card=863100001100308137',
}).done(function(data) {
    sex = data.info.sex;
})

js不就更簡單,是這問這個?

RosonJ | 园豆:4910 (老鸟四级) | 2016-07-15 10:53
其他回答(7)
0

httpclient getasync

czd890 | 园豆:14412 (专家六级) | 2016-07-14 11:33

你说的我不会实现,我是个菜鸟

支持(0) 反对(0) IT_zl | 园豆:112 (初学一级) | 2016-07-15 09:40

@IT_zl: 是个菜鸟,还自豪了呀。

给了你关键字 就是msdn多搜搜,别人给的代码,永远是别人的。

要鱼还是要渔

支持(0) 反对(0) czd890 | 园豆:14412 (专家六级) | 2016-07-15 11:27
0
var type = "utf-8";
                var Url = "http://139.224.32.119:8612/appapi.php/Member/cardGetInfo.html?card=863100001100308137"
System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
                // Get the response instance.
                System.Net.WebResponse wResp = wReq.GetResponse();
                System.IO.Stream respStream = wResp.GetResponseStream();
                // Dim reader As StreamReader = New StreamReader(respStream)
                string data = "";
                using (System.IO.StreamReader reader = new System.IO.StreamReader(respStream, Encoding.GetEncoding(type)))
                {
                    data = reader.ReadToEnd();
                }

 

Cyclone77 | 园豆:36 (初学一级) | 2016-07-14 11:38

你这个方法得到的只是浏览器打开的结果,没法转换

支持(0) 反对(0) IT_zl | 园豆:112 (初学一级) | 2016-07-15 09:41
0

就是利用http请求,然后将获取的json字符串解析成对象,就可以取到你想要的数据了。

CodeHsu | 园豆:5468 (大侠五级) | 2016-07-14 11:52

一看就知道你是大神,可是我是菜鸟,基本什么都不懂

支持(0) 反对(0) IT_zl | 园豆:112 (初学一级) | 2016-07-15 09:41

@IT_zl: 大神不敢当,只是提供给你一个思路,其他的你可以自己查下资料,这样更深刻。

支持(0) 反对(0) CodeHsu | 园豆:5468 (大侠五级) | 2016-07-15 09:44

你说的方法我懂得,可是具体实现我不会

支持(0) 反对(0) IT_zl | 园豆:112 (初学一级) | 2016-07-15 09:45

@IT_zl: 好吧,那你可以先参考给你代码的回答了。

支持(0) 反对(0) CodeHsu | 园豆:5468 (大侠五级) | 2016-07-15 09:47
0

...

顾晓北 | 园豆:10844 (专家六级) | 2016-07-14 13:04

支持(0) 反对(0) IT_zl | 园豆:112 (初学一级) | 2016-07-15 09:42
0
static void Main(string[] args)
        {
            var type = "utf-8";
            var Url = "http://139.224.32.119:8612/appapi.php/Member/cardGetInfo.html?card=863100001100308137";
            System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
            System.Net.WebResponse wResp = wReq.GetResponse();
            System.IO.Stream respStream = wResp.GetResponseStream();
            string data = "";
            using (System.IO.StreamReader reader = new System.IO.StreamReader(respStream, Encoding.GetEncoding(type)))
            {
                data = reader.ReadToEnd();
            }

            data = Regex.Unescape(data);

            Console.WriteLine(data);
            Console.ReadKey();
        }

 

刘宏玺 | 园豆:14020 (专家六级) | 2016-07-14 13:46

你的方法也是正确的,谢谢,我测试了

支持(0) 反对(0) IT_zl | 园豆:112 (初学一级) | 2016-07-15 09:48
0
using (HttpClient client = new HttpClient())
            {
                HttpResponseMessage response =
                    Task.Run(
                        async () =>
                            await
                                client.GetAsync(
                                    "http://139.224.32.119:8612/appapi.php/Member/cardGetInfo.html?card=863100001100308137"))
                        .Result;

                var restulStr = Task.Run(async () => await response.Content.ReadAsStringAsync()).Result;

                var resultJson = JsonConvert.DeserializeObject<JObject>(restulStr);

                var sex = resultJson.SelectToken("info.sex").Value<string>();
            }

 

Vin° | 园豆:164 (初学一级) | 2016-07-14 14:24

这个方法,可能有个类你没告诉我,复制出来用,有几个时报错的,但是也要谢谢你的解答

支持(0) 反对(0) IT_zl | 园豆:112 (初学一级) | 2016-07-15 09:51
0

nuget下载newtonsoft.net引用,然后参考上边几人说的

九九哥 | 园豆:182 (初学一级) | 2016-07-14 20:25

嗯,是的,我就这么做的,还在测试结果了

支持(0) 反对(0) IT_zl | 园豆:112 (初学一级) | 2016-07-15 09:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册