【问题标题】:How to parse a JSON file in Kotlin on Android Studio如何在 Android Studio 上的 Kotlin 中解析 JSON 文件
【发布时间】:2021-01-24 19:45:20
【问题描述】:

我正在尝试解析以下 JSON 文件。 它在另一个包上,我正在尝试导入它。 我曾尝试安装不同的软件包并在 Gradle 上添加依赖项,但对我来说似乎不清楚。 大多数教程都有 json 文件所在的文件夹 assests 或其版本包含 Java。 有谁知道我如何在 Android Studio 上使用 Kotlin 逐步读取 JSON 文件?

【问题讨论】:

标签: android json kotlin


【解决方案1】:

我认为您不能直接从另一个模块执行此操作,但有一种方法可以执行此操作,请按照以下步骤操作:

  1. Assets 文件夹中将JSON 作为String 获取。

     fun readJSONFromAsset(): String? {
         var json: String? = null
         try {
             val  inputStream:InputStream = assets.open("yourFile.json")
             json = inputStream.bufferedReader().use{it.readText()}
         } catch (ex: Exception) {
             ex.printStackTrace()
             return null
         }
         return json
     }
    
  2. Gson解析JSON

     fun parseJSON() {
          Gson().fromJson(readJSONFromAsset(), YourObjectModel::class.java)
     }
    
  3. 在存在JSONmodule 中创建一个类,并将上述方法放入其中。

     class FetchJSONFromModule() {
    
        companion object {
    
           fun readJSONFromAsset(): String? {
               var json: String? = null
               try {
                   val  inputStream:InputStream = assets.open("yourFile.json")
                   json = inputStream.bufferedReader().use{it.readText()}
               } catch (ex: Exception) {
                   ex.printStackTrace()
                   return null
               }
               return json
           }
    
          fun parseJSON(): ObjectFromJson {
              return Gson().fromJson(readJSONFromAsset(), YourObjectModel::class.java)
          }
    
       }
    
     }
    
  4. 通过添加下面的依赖,在你想使用JSON的模块中导入模块(其中存在JSON及以上类);

implementation project(":YourModuleName")

  1. 然后调用类,在你想使用的类中JSON

val data = FetchJSoNFromModule.parseJSON()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2018-07-23
    • 2017-06-15
    • 1970-01-01
    • 2015-07-23
    相关资源
    最近更新 更多