Unity在安卓,苹果,windows下读取StreamingAssets文件夹中的json文件

19 篇文章 0 订阅
2 篇文章 0 订阅

其实除了安卓环境下,其他都可以直接通过文件流的形式读取StreamingAssets文件夹下的文件。
而大部分环境下都可以通过www来读取,所有本文就只介绍通过www来读取StreamingAssets文件夹下的文件。

   void Awake()
    {
        string path =
      	 #if UNITY_ANDROID && !UNITY_EDITOR  
        Application.streamingAssetsPath + "/Josn/data.json";
		#elif UNITY_IPHONE && !UNITY_EDITOR
        "file://" + Application.streamingAssetsPath + "/Josn/data.json";
		#elif UNITY_STANDLONE_WIN||UNITY_EDITOR
        "file://" + Application.streamingAssetsPath + "/Josn/data.json";
		#else
        string.Empty;
		#endif
        StartCoroutine(ReadData(path));
    }
 
    IEnumerator ReadData(string path)
    {
        WWW www = new WWW(path);
        yield return www;
        while (www.isDone == false)
        {
            yield return new WaitForEndOfFrame();
        }     
    }

在安卓环境下,读取json文件,同时转成json时,一直报错,在网上看到其他人在安卓环境下读取json的方法。

            WWW www = new WWW(path);
              yield return www;
     	    while (www.isDone == false)
       		 {
         	   yield return new WaitForEndOfFrame();
     	     }     
            string s = Encoding.UTF8.GetString(www.bytes, 3, www.bytes.Length - 3);
            //通过LitJson将字符串转为json文件。
            JsonData js = JsonMapper.ToObject(text);
         

这样就可以成功转为json文件而不报错了。
上文中

string s = Encoding.UTF8.GetString(www.bytes, 3, www.bytes.Length - 3);

为什么跳过前三个字节可以通过下面的链接查看原博主的解释。

参考文章:https://blog.csdn.net/leosheldon/article/details/79055307

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值