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很遗憾不能解析复杂的数据模型,如果大佬们有简单方法可以告诉我一下,感激不尽.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Unity中的Newtonsoft.Json.dll是一个第三方插件,用于处理JSON数据的序列化和反序列化JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于数据传输和存储。 Newtonsoft.Json.dll提供了强大的功能,可以将对象序列化为JSON字符串,并将JSON字符串反序列化为对象。这对于与服务器进行数据交互、保存游戏进度或在不同平台上共享数据非常有用。 使用Newtonsoft.Json.dll,可以在Unity中轻松地将复杂数据结构转换为JSON表示形式。例如,将包含复杂嵌套的对象、数组、字典等数据结构序列化为JSON字符串。同时,也可以将JSON字符串反序列化为对应的数据结构,使之成为可供Unity程序使用的对象。 在Unity中使用Newtonsoft.Json.dll很简单。首先,需要将该DLL文件导入Unity工程中。然后,在代码中导入Newtonsoft.Json命名空间,通过调用适当的方法,实现JSON数据的序列化和反序列化。 例如,可以使用JsonConvert.SerializeObject()将对象序列化为JSON字符串,使用JsonConvert.DeserializeObject()将JSON字符串反序列化为对象。 总而言之,Unity中的Newtonsoft.Json.dll提供了强大的JSON数据处理功能,可以帮助开发者在Unity项目中快速、方便地进行数据的序列化和反序列化,以实现高效的数据交互和存储。 ### 回答2: Unity中的Newtonsoft.Json.dll是一个用于处理JSON数据的库。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,适用于各种编程语言。 Newtonsoft.Json.dll提供了一系列的API,允许我们在Unity项目中进行JSON的序列化和反序列化操作。序列化是将对象转换为JSON字符串的过程,而反序列化则是将JSON字符串转换为对象的过程。 使用Newtonsoft.Json.dll,我们可以将Unity游戏中的数据以JSON格式进行存储和传输。例如,当我们需要保存用户的游戏进度时,可以将关键数据以JSON字符串的形式存储在本地文件或数据库中。反之,当我们需要从外部数据源获取数据时,可以通过反序列化JSON字符串转换为具体的游戏对象,然后在游戏中使用。 此外,Newtonsoft.Json.dll还提供了一些其他功能,比如JSON的格式化、LINQ查询等。它的使用相对简单,只需在Unity项目中添加Newtonsoft.Json.dll,并在代码中引入相应的命名空间,就可以使用其提供的功能。 总之,Unity中的Newtonsoft.Json.dll是一个非常实用的库,它提供了处理JSON数据的功能,使得在Unity项目中使用JSON更加方便和高效。通过它,我们可以实现数据的序列化和反序列化,以及各种JSON操作,使得游戏的数据处理更加灵活和便捷。 ### 回答3: Newtonsoft.Json.dll 是 Unity 引擎中用于处理 JSON(JavaScript Object Notation,JavaScript 对象标记)格式数据的一个工具库。 JSON 是一种轻量级的数据交换格式,常用于在不同平台、系统或语言之间传输和存储数据。而 Newtonsoft.Json.dll 提供了一系列的方法和类,使得在 Unity 中可以方便地将 JSON 数据转换为对象,或者将对象转换为 JSON 数据。 在使用 Newtonsoft.Json.dll 时,首先需要在 Unity 项目中导入该库。可以通过从 Newtonsoft.Json 官网下载 DLL 文件,然后将其拖入 Unity 项目的 Assets 目录下。导入后,我们可以在脚本中使用它提供的功能。 通过 Newtonsoft.Json.dll,我们可以实现以下功能: 1. 将 JSON 字符串转换为对象:使用 JsonConvert.DeserializeObject<T>(json) 方法,将一个符合特定数据结构的 JSON 字符串转换为对应的对象。其中 T 表示要转换为的对象类型。 2. 将对象转换为 JSON 字符串:使用 JsonConvert.SerializeObject(obj) 方法,将一个对象转换为对应的 JSON 字符串。 3. 处理 JSON 数据的读取、解析和操作:在 Unity 中,我们可以使用 JObject、JArray 等类来处理 JSON 数据的读取、解析和操作。比如,我们可以通过 JObject.Parse(json) 将一个 JSON 字符串解析为 JObject 对象,然后使用它提供的方法和属性来获取和修改 JSON 数据的内容。 通过使用 Newtonsoft.Json.dll,我们可以在 Unity 中方便地处理 JSON 格式的数据,实现数据的序列化和反序列化,以及进行数据的读取和修改。这对于与后端服务器交互、解析 API 返回的数据、本地存储和加载数据等方面都非常有用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

HoFunGames

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

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

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

打赏作者

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

抵扣说明:

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

余额充值