Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android studio上读取Json文件的简单方法_Java_Android_Android Studio_Android Json - Fatal编程技术网

Java 在android studio上读取Json文件的简单方法

Java 在android studio上读取Json文件的简单方法,java,android,android-studio,android-json,Java,Android,Android Studio,Android Json,我有一个包含国家列表的JSON文件,我想将它集成到我的android studio java项目中,然后通过代码读取内容,在项目中放置文件的位置,以及在我的java类中读取文件的最简单方法是什么 谢谢大家! 首先,您必须读取文件并将内容分配给某个字符串变量 val file = File(context?.filesDir, FILE_NAME) val fileReader = FileReader(File(context?.filesDir, FILE_NAME)) val

我有一个包含国家列表的JSON文件,我想将它集成到我的android studio java项目中,然后通过代码读取内容,在项目中放置文件的位置,以及在我的java类中读取文件的最简单方法是什么

谢谢大家!

  • 首先,您必须读取文件并将内容分配给某个字符串变量

         val file = File(context?.filesDir, FILE_NAME)
     val fileReader = FileReader(File(context?.filesDir, FILE_NAME))
     val bufferedReader = BufferedReader(fileReader)
     val stringBuilder = StringBuilder()
     var line = bufferedReader.readLine()
     while (line != null) {
         stringBuilder.append("${line}\n")
         line = bufferedReader.readLine()
     }
     bufferedReader.close()
     val jsonFileAsString = stringBuilder.toString()
    
  • 2.其次,必须根据前面的结果(变量jsonFileAsString创建一个JSONOBJECT)

  • 最后,要读取您可以使用的特定属性

    jsonObject.get(“name”).toString()

  • 但要想说明清楚,你应该考虑制作一个<强>数据类< /St>来匹配特定的JSON文件并以这种方式解析它。要做到这一点,您可以使用GSON库(我不知道标准Android软件包是否具有此功能),您应该得到如下内容:

    数据类

    data class Transport(
        val TransportIdentifier: String?,
        val TransportType: String?,
    )
    
    要解析它,只需使用

    val transport = Gson().fromJson<Transport>(stringVariable, Transport::class.java)
    

    为了使事情变得更简单,您可以从JSON输出中生成一个数据类,例如使用

    这是否回答了您的问题?不是真的,那家伙已经读了文件内容,正在考虑如何使用它谢谢你的回答,我的文件实际上是一个.json而不是.txt,这有什么区别吗?还有,我应该把它放在我的项目的什么地方呢?这没什么区别。你应该把它放在哪里取决于你是通过一些WebApi获取文件,还是你在整个应用程序中使用的静态文件
    val transport = Gson().fromJson<Transport>(stringVariable, Transport::class.java)
    
    transport.TransportType