JSON 데이터를 C#의 고유 한 클래스에 매핑하고 필요로하는 곳에서 다양한 데이터를 표시하려고합니다. 그러나 데이터가 필요할 때 데이터를 얻을 수없는 작은 문제가 있습니다. 내가 할 수 있어야한다고 생각해. 분명히 뭔가 잘못이고 나는 누군가가 올바른 방향으로 날 지점 수있는 기대했다 : JSON의Json의 데이터 세트에 액세스하기
예 조각 : 나는 다음과 같이 내 자신의 클래스에이 직렬화하려면 다음을 사용하고
"items"
{
"0"
{
"name" "Riki's Dagger"
"prefab" "default_item"
"item_name" "#DOTA_Item_Rikis_Dagger"
"item_type_name" "#DOTA_WearableType_Daggers"
"model_player" "models/heroes/rikimaru/rikimaru_weapon.mdl"
"used_by_heroes"
{
"npc_dota_hero_riki" "1"
}
}
"1"
{
"name" "Anti-Mage's Glaive"
"prefab" "default_item"
"item_description" "#DOTA_Item_Desc_AntiMages_Glaives"
"item_name" "#DOTA_Item_AntiMages_Glaive"
"item_type_name" "#DOTA_WearableType_Glaive"
"model_player" "models/heroes/antimage/antimage_weapon.mdl"
"used_by_heroes"
{
"npc_dota_hero_antimage" "1"
}
}
:
DotaItemsGameResult itemGameResult
= JsonConvert.DeserializeObject<DotaItemsGameResult>(rawItemDetailsJson);
다른 곳에서도 사용 했으므로 정상적으로 작동합니다.
말썽
여기에 온다 :string dataToDisplay = "";
foreach (DotaItemsGameItem item in itemGameResult.Items_Game.Items.Item_Index)
{
dataToDisplay += "<h3> Item: " + item.Name + "</h3>";
dataToDisplay += "<p> Quality: " + item.Item_Quality + "</p>";
dataToDisplay += "<p> Attributes: " + item.Used_By_Heroes + "</p>";
}
return dataToDisplay;
내 코드는 내가 .Items_Index
에 더 가고 싶은 경우에 대한 itemGameResult.Items_Game.Items
하지만 알고 보인다.
나는 다음과 같은 클래스가 있습니다
public class DotaItemsGameResult
{
public DotaItemsGameResultProperties Items_Game { get; set; }
}
public class DotaItemsGameResultProperties
{
public List<DotaItemsGameRarities> Rarities { get; set; }
public List<DotaItemsGameItems> Items { get; set; }
}
public class DotaItemsGameItems
{
public List<DotaItemsGameItem> Item_Index { get; set; }
}
public class DotaItemsGameItem
{
public string Name { get; set; }
public string Hidden { get; set; }
public string Item_Class { get; set; }
public string Item_Name { get; set; }
public string Item_Slot { get; set; }
public string Item_Quality { get; set; }
public string Min_Ilevel { get; set; }
public string Max_Ilevel { get; set; }
public string Item_Description { get; set; }
public string Item_Type_Name { get; set; }
public List<DotaItemsGameUsedByHero> Used_By_Heroes { get; set; }
}
는 기본적으로, 내 목표는 내 루프에서 Used_By_Heroes
데이터를 얻을 수있을 것입니다하지만 난 할 수 없습니다.
내 각각 itemGameResult.Items_Game.Items
은 괜찮지 만 itemGameResult.Items_Game.Items.Item_Index
은 아닙니다. 이유는 알 수 없습니다.
도트 표기법을 사용할 때 Item_Index
에 액세스 할 수 없으므로 여기에 Item_Index
이 있어야합니다. 1 'System.Collections.Generic.List은'ITEM_INDEX '없이 확장 방법에 대한 정의를 포함하지 않는
오류'ITEM_INDEX '는 수락 : 어쨌든에 넣어 컴파일하려고하면,이 참조 'System.Collections.Generic.List'유형의 첫 번째 인수를 찾을 수 있습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?).
도움이 될 것입니다.
아 .. 그럴 것입니다. 바보 같아서 ... 도와 줘서 고마워! – Goose