簡體   English   中英

需要幫助從JSON鍵/值對獲取特定值

[英]Need Help getting a specific value from a JSON key/value pair

我正在從第3方API提取數據,並且自己編寫了一些類似以下的代碼...

public partial class Form1 : Form
{
    int playSystem = 2;
    string playID = "";

    public Form1()
    {
        InitializeComponent();
    }

    private void xBox_CheckedChanged(object sender, EventArgs e)
    {
        playSystem = 1;
    }

    public void playstation_CheckedChanged(object sender, EventArgs e)
    {
        playSystem = 2;
    }

    private async void searchButton_Click(object sender, EventArgs e)
    {
        statDisplay.Clear();

        var userName = nameBox.Text;

        using (var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("X-API-KEY", "xxxxxxxxxxxxxxxx");

            var response = await client.GetAsync("https://bungie.net/platform/Destiny/SearchDestinyPlayer/" + playSystem + "/" + userName);
            var content = await response.Content.ReadAsStringAsync();
            dynamic item = Newtonsoft.Json.JsonConvert.DeserializeObject(content);

            statDisplay.AppendText(item.ToString());
        }
    }
}

與其將對象中的所有信息顯示為字符串,不如從該對象中獲取特定值,將其存儲到變量中,然后在另一個HTTPRequest中使用該變量。

我得到的輸出看起來像這樣...

{
  "Response": [
    {
      "iconPath": "/img/theme/destiny/icons/icon_psn.png",
      "membershipType": 2,
      "membershipId": "01234567890",
      "displayName": "xxxxxxxxxx"
    }
  ],
  "ErrorCode": 1,
  "ThrottleSeconds": 0,
  "ErrorStatus": "Success",
  "Message": "Ok",
  "MessageData": {}
}

我想特別關注於MembershipId鍵/值。

var membershipId = (string)item.Response[0].membershipId;

我想您可以在此處的Newtonsoft's Documentation中找到您想做的事情

http://www.newtonsoft.com/json/help/html/LINQtoJSON.htm

在此示例中,他們使用linq查找對象上的特定內容,但是您也可以通過返回對象內的每個元素來使用For Each。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM