게임에서 3 명의 다른 사용자의 서버 요청을하고 있습니다.
결과적 으로이 JSON 문자열을 얻었습니다.
{
"d4r1o": {
"id": 1040806,
"name": "D4R1O",
"profileIconId": 596,
"revisionDate": 1399366400000,
"summonerLevel": 30
},
"snnovox": {
"id": 65728,
"name": "SN Novox",
"profileIconId": 548,
"revisionDate": 1399369344000,
"summonerLevel": 30
},
"gmbecken": {
"id": 421545,
"name": "GM Becken",
"profileIconId": 26,
"revisionDate": 1399160360000,
"summonerLevel": 30
}
}
따라서이 문자열을 역 직렬화하기 위해 이러한 클래스가 있습니다.
public class RootObject
{
public SummonerDto d4r1o { get; set; }
public SummonerDto snnovox { get; set; }
public SummonerDto gmbecken { get; set; }
}
public class SummonerDto
{
public int id { get; set; }
public string name { get; set; }
public int profileIconId { get; set; }
public long revisionDate { get; set; }
public int summonerLevel { get; set; }
}
이것은 잘 작동하지만 사용자가 자신의 사용자 이름에 대해 요청하려는 경우 (예 : snyucax)
{"snyucax": {
"id": 48985,
"name": "SN YucaX",
"profileIconId": 504,
"revisionDate": 1399257043000,
"summonerLevel": 30
}}
해당 이름을 객체로 지정하지 않고도 사용자 이름을 사용할 수 있도록 RootObject 클래스 에서 하나의 객체 만 만드는 방법이 있습니까?
이를 위해 사전을 사용해야합니다. JSON.NET을 사용하는 경우 코드는 다음과 같습니다.
var users = JsonConvert.DeserializeObject<Dictionary<string, SummonerDto>>(jsonDataString);
그런 다음 다음으로 이동하여 사용자를 가져올 수 있습니다.
var user = users["d4r1o"];
e : Tim S
그냥 날 펀치로이긴 것 같아 , 하하.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다