小狮子的Android杂记之读取Assets中的json文件

设计是这样的,通过读取assets中的json文件,通过json来生成默认界面。而在网络可用的情况下,从服务器端获取对应的json数据,并生成对应的界面。

首先,我们将生成的json文件放在

assets/data/content_home.json

json文件的内容大概是这样的一个结构:

接下来,需要从这个文件里面读取json内容。因为数据内容是一个JSONArray,所以封装一个方法,直接返回JSONArray。

fun readJsonArray(fileName: String): JSONArray? = JSON.parseArray(readAsString(fileName))

fun readAsStream(fileName: String): InputStream? = AppContext.appContext?.assets?.open(fileName)

fun readAsString(fileName: String): String? = readAsStream(fileName)?.use { inputStream ->
    BufferedReader(InputStreamReader(inputStream, "utf-8")).use {
        val stringBuffer = StringBuffer()
        it.forEachLine {
            stringBuffer.append(it)
        }
        stringBuffer.toString()
    }
}

其实也就是读取文件,主要是这段

context.assets.open(fileName: String)

执行一下,看看结果:(因为比较长,省略了一部分)

[{"content":[{"contentUrl":"https://vickytang.applinzi.com/blogs/kotlin/%E5%B0%8F%E7%8B%AE%E5%AD%90%E7%9A%84Kotlin%E5%AD%A6%E4%B9%A0%E4%B9%8B%E8%B7%AF%EF%BC%88%E4%B8%80%EF%BC%89.html","defaultImageId":0,"id":0,"imageUri":"","subTitle":"Kotlin","title":"小狮子的Kotlin学习之路(一)"},
...],
"id":0,"title":"Kotlin教程"},{"content":[{"contentUrl":"https://vickytang.applinzi.com/blogs/essay/android/kotlin%E5%AE%9E%E7%8E%B0MVVM%E6%A1%86%E6%9E%B6%E4%BD%BF%E7%94%A8DataBinding%E4%B9%8Bunresolved%20reference%20BR%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95.html","defaultImageId":0,"id":0,"imageUri":"","subTitle":"Kotlin","title":"小狮子Android杂记之MVVM框架"}],"id":0,"title":"Kotlin杂记"},{"content":[{"contentUrl":"https://blog.csdn.net/luckyion/article/details/105317368","defaultImageId":0,"id":0,"imageUri":"","subTitle":"Kotlin","title":"小狮子的Android杂记之Deepin下连接Android真机调试"}],"id":0,"title":"Android杂记"}]

可以看到,Kotlin读取文件还是很方便哒。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值