我从第三方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键/值。
答案 0 :(得分:0)
var membershipId = (string)item.Response[0].membershipId;
答案 1 :(得分:-1)
我认为你想要做的事情可以在Newtonsoft的文档
中找到http://www.newtonsoft.com/json/help/html/LINQtoJSON.htm
在这个例子中,他们使用linq来查找Object上的特定内容,但你也可以通过返回对象中的每个元素For Each。