Android获取assets文件夹下的json数据,并解析!

以前看过这些知识,今天用到的时候,发现自己忘记了,都不知道assets文件夹在哪个目录下。百度了一下,assets目录和java目录是同一个级别的。
我们右击assets目录新建File,起名"dynamic.json",然后我们在文件中写一些json数据:

{"dynamic":[
  {
    "username":"燕",
    "createTime":"04-23 13:12",
    "commentNum":"45",
    "content":"喔喔喔",
    "headIcon":"http://img2.imgtn.bdimg.com/it/u=1576185143,2361770572&fm=214&gp=0.jpg",
    "images":"http://img4.imgtn.bdimg.com/it/u=3776739438,757564394&fm=214&gp=0.jpg",
    "level":"公告",
    "priseNum":"23"
  },
  {
    "username":"徐金杰",
    "createTime":"04-23 13:12",
    "commentNum":"45",
    "content":"哩哩里",
    "headIcon":"http://img4.duitang.com/uploads/item/201508/17/20150817142843_4smWc.jpeg",
    "images":"http://pic.58pic.com/58pic/13/70/90/29358PICQjG_1024.jpg",
    "level":"公告",
    "priseNum":"43"
  },{
    "username":"宋",
    "createTime":"04-23 13:12",
    "commentNum":"23",
    "content":"咕咕咕",
    "headIcon":"http://img2.imgtn.bdimg.com/it/u=1576185143,2361770572&fm=214&gp=0.jpg",
    "images":"http://img1.3lian.com/2015/w7/85/d/21.jpg",
    "level":"重要",
    "priseNum":"12"
  },
  {
    "username":"唐",
    "createTime":"04-23 13:12",
    "commentNum":"450",
    "content":"喵喵喵",
    "headIcon":"http://img4.duitang.com/uploads/item/201508/17/20150817142843_4smWc.jpeg",
    "images":"http://img4.imgtn.bdimg.com/it/u=3776739438,757564394&fm=214&gp=0.jpg",
    "level":"公告",
    "priseNum":"345"
  },{
    "username":"米",
    "createTime":"04-23 13:12",
    "commentNum":"333",
    "content":"咪咪咪",
    "headIcon":"http://www.haopic.me/wp-content/uploads/2015/12/2015122808171644.jpg",
    "images":"http://img1.3lian.com/2015/w7/85/d/21.jpg",
    "level":"重要",
    "priseNum":"323"
  },{
    "username":"冯",
    "createTime":"04-23 13:12",
    "commentNum":"322",
    "content":"么么哒",
    "headIcon":"http://img.bitscn.com/upimg/allimg/c160120/1453262U560940-A5c.jpg",
    "images":"http://img1.3lian.com/2015/w7/85/d/21.jpg",
    "level":"重要",
    "priseNum":"222"
  },{
    "username":"施",
    "createTime":"04-23 13:12",
    "commentNum":"12",
    "content":"啦啦啦",
    "headIcon":"http://www.haopic.me/wp-content/uploads/2015/12/2015122808171644.jpg",
    "images":"http://img1.hq2011.com/uploads/allimg/150131/0122205Y4-0.jpg",
    "level":"公告",
    "priseNum":"4"
  },{
    "username":"宋",
    "createTime":"04-23 15:45",
    "commentNum":"23",
    "content":"呵呵呵",
    "headIcon":"http://scimg.jb51.net/allimg/170330/2-1F3301636200-L.jpg",
    "images":"http://img1.3lian.com/2015/w7/85/d/21.jpg",
    "level":"公告",
    "priseNum":"12"
  },{
    "username":"杨",
    "createTime":"04-23 13:16",
    "commentNum":"12",
    "content":"嘻嘻嘻",
    "headIcon":"http://www.qqw21.com/article/UploadPic/2016-2/20162192155654059.jpg",
    "images":"http://img1.hq2011.com/uploads/allimg/150131/0122205Y4-0.jpg",
    "level":"公告",
    "priseNum":"1"
  },{
    "username":"程",
    "createTime":"04-22 14:12",
    "commentNum":"22",
    "content":"哈哈哈",
    "headIcon":"http://img2.imgtn.bdimg.com/it/u=1576185143,2361770572&fm=214&gp=0.jpg",
    "images":"http://pic.58pic.com/58pic/13/70/90/29358PICQjG_1024.jpg",
    "level":"重要",
    "priseNum":"23"
  }
]

}

那么,怎么读到这些数据呢?使用系统的方法:

public static String getJson(String fileName,Context context) {
	//将json数据变成字符串 
        StringBuilder stringBuilder = new StringBuilder();
        try {
        //获取assets资源管理器
            AssetManager assetManager = context.getAssets();
            //通过管理器打开文件并读取
            BufferedReader bf = new BufferedReader(new InputStreamReader(
                    assetManager.open(fileName)));
            String line;
            while ((line = bf.readLine()) != null) {
                stringBuilder.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return stringBuilder.toString();
    }

这个时候,如果我们要把字符串转换成Object的话:

JSONObject jsonObject = new JSONObject(str);

然后通过正常的转换,获取其中的JSONArray或者直接转成对象:

//将读出的字符串转换成JSONobject
 JSONObject jsonObject = new JSONObject(str);
 //获取JSONObject中的数组数据
 jsonArray = jsonObject.getJSONArray(arrName);

如果我们使用Gson解析的话:

Type listType = new TypeToken<List<SearchCompanyResultBean>>() {
        }.getType();
  //这里的json是字符串类型 = jsonArray.toString();
List<SearchCompanyResultBean> list = new Gson().fromJson(json, listType );

这里我的实体类是SearchCompanyResultBean。
通过Gson将json数组转换成list集合
有了数据源,然后在设置到ui上

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
可以使用Unity提供的`AudioClip.LoadAudioData()`方法,该方法可以将音频数据加载到指定的`AudioClip`中。以下是一个获取StreamingAssets文件夹下多个mp3并放入一个audioclip数组的示例代码: ```csharp using UnityEngine; using System.Collections; using System.IO; public class LoadAudioClips : MonoBehaviour { public AudioClip[] audioClips; IEnumerator Start () { // 获取StreamingAssets文件夹路径 string path = Application.streamingAssetsPath + "/Audio/"; // 获取文件夹内的所有mp3文件 DirectoryInfo dir = new DirectoryInfo(path); FileInfo[] files = dir.GetFiles("*.mp3"); // 创建AudioClip数组 audioClips = new AudioClip[files.Length]; // 遍历mp3文件 for (int i = 0; i < files.Length; i++) { WWW www = new WWW(files[i].FullName); // 等待音频数据加载完成 yield return www; // 创建AudioClip AudioClip clip = AudioClip.Create(files[i].Name, (int)(www.audioClip.length * www.audioClip.frequency), www.audioClip.channels, www.audioClip.frequency, false); clip.SetData(www.audioClip.GetData(), 0); // 将AudioClip添加到数组中 audioClips[i] = clip; // 释放WWW对象 www.Dispose(); } } } ``` 在上面的代码中,我们首先获取StreamingAssets文件夹路径,并获取文件夹内的所有mp3文件。然后,我们创建一个AudioClip数组,遍历mp3文件,并使用`WWW`类加载音频数据。在音频数据加载完成后,我们创建一个新的`AudioClip`对象,并使用`SetData()`方法将音频数据复制到新的`AudioClip`中。最后,我们将`AudioClip`添加到数组中,并释放`WWW`对象

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值