Witam.
Na wstępie, jestem bardzo początkujący i proszę nie linczować. ;p
Do rzeczy.
Model - SteamIdModel.cs
using System.Collections.Generic;
namespace SteamIDFinder.Models
{
public class RootObject
{
public ResponseObject response { get; set; }
}
public class ResponseObject
{
public List<Player> players { get; set; }
}
public class Player
{
public string steamid { get; set; }
public int communityvisibilitystate { get; set; }
public int profilestate { get; set; }
public string personaname { get; set; }
public int commentpermission { get; set; }
public string profileurl { get; set; }
public string avatar { get; set; }
public string avatarmedium { get; set; }
public string avatarfull { get; set; }
public string avatarhash { get; set; }
public int lastlogoff { get; set; }
public int personastate { get; set; }
public string primaryclanid { get; set; }
public int timecreated { get; set; }
public int personastateflags { get; set; }
}
}
Controller - SteamIdController.cs
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SteamIDFinder.Models;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text.Json;
namespace SteamIDFinder.Controllers
{
public class SteamIdController : Controller
{
public IActionResult Index()
{
return View();
}
[HttpPost, ValidateAntiForgeryToken]
public IActionResult Index(string GetSteamId)
{
const string API_KEY = "AF9B93E6758E6506DA299B2FDA6CA3DE";
const string MojSID = "76561198978527815";
//string SteamId64 = GetSteamId;
string API_link = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=" + API_KEY + "&format=json&steamids=" + MojSID;
WebClient client = new WebClient();
string reply = client.DownloadString(API_link);
//var r = JsonConvert.DeserializeObject<RootObject>(reply);
var jObject = JObject.Parse(reply);
if (jObject != null)
{
var players = jObject["players"];
string test2 = players["personaname"].ToString();
}
return View();
}
}
}
A tak prezentuje się finalnie JSON
{
"response": {
"players": [
{
"steamid": "76561198978527815",
"communityvisibilitystate": 3,
"profilestate": 1,
"personaname": "Luvv",
"commentpermission": 1,
"profileurl": "https://steamcommunity.com/id/elomelotupaulinka/",
"avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/78/789fdb09abc205dacd5457c013643a94e1b5330a.jpg",
"avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/78/789fdb09abc205dacd5457c013643a94e1b5330a_medium.jpg",
"avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/78/789fdb09abc205dacd5457c013643a94e1b5330a_full.jpg",
"avatarhash": "789fdb09abc205dacd5457c013643a94e1b5330a",
"personastate": 1,
"realname": "Paulina",
"primaryclanid": "103582791470021249",
"timecreated": 1563652881,
"personastateflags": 0,
"gameextrainfo": "Counter-Strike: Global Offensive",
"gameid": "730",
"loccountrycode": "PL",
"locstatecode": "52",
"loccityid": 35957
}
]
}
}
Chciałbym uzyskać dostęp do wszystkich wartości w tablicy players (np. profilestate, profileurl itp...)
Cały dzień siedzę nad tym problemem i próbuję go rozwiązać przekopując pół stackoverflowa, lecz bez skutku.