首页 > 解决方案 > 如何从 HTTP GET 组织字符串

问题描述

我在 VB.Net 上使用 Query Using HTTP GET 来获得以下代码的响应:

Dim webClient As New System.Net.WebClient
Dim result As String = webClient.DownloadString("http://api.site.com/api=xxxxxxxxxxxx&id=1")`

要查看我使用的字符串:

MsgBox(result)

我得到的回应是这样的:

{"result":"success","message":"找到成员","member_data":{"member_id":"1","user_name":"John","first_name":"John","last_name" :"Smith","password":"xxx","member_since":"2018-12-08","membership_level":"2","more_membership_levels":null,"account_state":"active","last_accessed" :"2018-12-08 09:00:53","last_accessed_from_ip":"1.1.1.1","email":"john.smigh@test.com","phone":null,"address_street":null, "address_city":null,"address_state":null,"address_zipcode":null,"home_page":null,"country":null,"gender":"未指定","re​​ferrer":null,"extra_info":null,"reg_code":null,"subscription_starts":"2018-12-08","initial_membership_level":null,"txn_id":"","subscr_id ":"","company_name":null,"notes":null,"flags":"0","profile_image":""}}

我一直想弄清楚的是如何将姓名、姓氏、电子邮件、会员级别和帐户状态放入单独的 label.text 中,任何帮助将不胜感激!

标签: vb.netgetwebclient

解决方案


您需要反序列化 JSON。您可以使用 JavaScript(De)Serializer 或外部的东西,例如 newtonsoft.json (json.net)。这几乎是相同的概念。

 Dim test As JObject = JObject.Parse(New WebClient().DownloadString("http://api.site.com/api=xxxxxxxxxxxx&id=1"))
 Dim test1 As JToken = test("member_data")
 Debug.Print(String.Format("{0}, {1}, {2}, {3}, {4}", test1("first_name"), test1("last_name"), test1("email"), test1("membership_level"), test1("account_state")))
 'output >>> John, Smith, john.smigh@test.com, 2, active

我使用了 newtonsoft,因为我现在的项目中已经有了它。

它就像字典,只需调用键(名称)即可获得您的价值。


推荐阅读