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

这篇博客讲述了在Unity中使用Json.NET进行数据反序列化时遇到的问题,即在PC平台上无法正常工作。作者发现问题在于ScriptingBackend设置,通过改为Mono解决了问题。但若想保留IL2CPP,需要使用如LitJson等库手动解析复杂的数据模型。文章提供了一个使用LitJson解析JSON数据的示例代码。
摘要由CSDN通过智能技术生成
  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很遗憾不能解析复杂的数据模型,如果大佬们有简单方法可以告诉我一下,感激不尽.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HoFunGames

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值