Unity Newtonsoft.json 无法在PC上反序列化Json的解决办法

  void LoadData()
    {
    
    
        TextAsset heroData = Resources.Load<TextAsset>("VideoData");//json数据的名字存放在Resources
        List<DaHeZhiBeiDataModel> heroList = JsonConvert.DeserializeObject<List<DaHeZhiBeiDataModel>>(heroData.text);//可以直接反序列化是真的很爽
        if (heroList == null)
        {
    
    
        
            Debug.LogError("Load Error_");
            return;
        }

   以上代码在编辑器与移动端没有问题,但在PC中无法反序列化(不知道是不是因为其他设置有问题)
  解决办法:将ProjectSetting -Player-Configuration-Scripting Backend设置为Mono

 void LoadData()
   {
    
    
        //改用LitJson   
        TextAsset asset = Resources.Load<TextAsset>("VideoData");//
        JsonData t_Data = JsonMapper.ToObject(asset.text);
        Debug.Log(t_Data.Count);
		if (t_Data.Count<=0)
		{
    
    
            Debug.LogError("ERROR");
            return;
        }
		for (int i = 0; i < t_Data.Count; i++)
		{
    
    
            DaHeZhiBeiDataModel t_data=new DaHeZhiBeiDataModel();//json数据的数据模型
			t_data.VideoName = t_Data[i][0].ToString();
			t_data.VideoPathType = t_Data[i][1].ToString();
			t_data.Title = t_Data[i][2].ToString();
			t_data.AbsolutePathOrURL = t_Data[i][3].ToString();
			t_data.StreamingFolder = t_Data[i][4].ToString();
			t_data.RelativeToFolder = t_Data[i][5].ToString();
			t_data.Describe = t_Data[i][6].ToString();
		    //这里就获取了json数据的一组完整的模型
		
		}
}
如果不想放弃IL2CPP,就只能像上面这样自己获取数据了.litjson和unity自带的JsonUtility很遗憾不能解析复杂的数据模型,如果大佬们有简单方法可以告诉我一下,感激不尽.

猜你喜欢

转载自blog.csdn.net/qq_36592993/article/details/120160465