【问题标题】:Deserialization Unity and c#, list into another list反序列化Unity和c#,列表到另一个列表
【发布时间】:2017-12-01 08:55:41
【问题描述】:

对不起,我的英语很好,我正在尝试反序列化 UNITY 和 C# 上的 json 文件, 当我得到一个对象列表(int,string,float,bool inside)时,一切正常,没有问题, JSON BASIC STRUCTURE

但是当我得到一个列表,其中的元素包含另一个列表时,问题就出现了,我的意思是另一个列表中的列表 json second structure

我的 c# 代码,我加载 json 文件,(我得到了这个配置,因为它适用于 Android 和统一编辑器)

 public void loadjsonfile(string jsonfilename)
	{
		TextAsset file = Resources.Load(jsonfilename) as TextAsset;
		jsonData = file.ToString ();
	}
	public List<club> findClubsIn(string jsonFilename, string leagueName)
	{
		List<club> clubFound = new List<club>();
		if(jsonFilename.Equals("european_club"))
		{
			loadjsonfile (jsonFilename);
			europeanClub uefaclubs = JsonUtility.FromJson<europeanClub> (jsonData);
			List<club> clubList = uefaclubs.europeanClubs;
			foreach (club cl in clubList)
			{
				if (cl.league.Equals (leagueName))
				{
					//Debug.Log (cl.name);
					clubFound.Add (cl);
				}
			}
			return clubFound;
		}
		clubFound.Clear ();
		return clubFound;
	}

现在,在同一个班级我得到了这个

[System.Serializable]
public class cab
{
	public float domestic_league;
	public float domestic_cup;
	public float domestic_s_cup;
	public float euro_champ_cup;
	public float euro_league;
	public float euro_s_cup;
	public float inter_club_champ;
}
[System.Serializable]
public class kits
{
	public string h_m_color;
	public string h_s_color;
	public string a_m_color;
	public string a_s_color;
	public string kit_sponsor;
	public string kit_supplier;
	public string sp_contract;
	public string supp_contract;
}
[System.Serializable]
public class transf
{
	public float transfer_budget;
	public float wage_budget;
	public float foreign_p_bias;
	public float transfer_activity;
	public bool only_national;
}
[System.Serializable]
public class fac
{
	public string stadium;
	public float stadium_cap;
	public string training_facilities;
}
[System.Serializable]
public class club
{
	public int club_id;
	public string sprite_id;
	public string name;
	public string confederation;
	public string nation;
	public string league;
	public float overall;
	public float international_rep;
	public float domestic_rep;
	public string financial_state;
	public float youth_policy;
	public string second_team;
	public float market_value;
	public string manager;
	public float squad_size;
	public string continental_comp;
	public string continental_s_cup;
	public List<fac> facilities;
	public List<transf> transfers;
	public List<kits> kit;
	public List<cab> cabinet;
}
[System.Serializable]
public class europeanClub
{
	public List<club> europeanClubs;
}

但是当我尝试做这个问题时,我真的不知道我做错了什么,希望你能帮助,提前谢谢。

JsonDataHandler data = new JsonDataHandler ();
			List<club> clubsFound = data.findClubsIn ("european_club","Premier League");
			List<fac> fac = new List<fac> ();
			foreach(club cl in clubsFound)
			{
				fac.Add (cl.facilities);
			}
			foreach(fac fs in fac)
			{
				Debug.Log (fs.stadium);
			}

错误
Assets/Scripts/scrollClub.cs(42,9): 错误 CS1502: `System.Collections.Generic.List.Add(fac)' 的最佳重载方法匹配有一些无效参数

【问题讨论】:

    标签: c# android css json serialization


    【解决方案1】:

    “cl.facilities”是列表。因此,当您将其添加到列表时会显示错误。您可以将其更改为“fac.AddRange(cl.facilities)”以追加到列表中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      • 2012-10-31
      相关资源
      最近更新 更多