Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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
Android 如何读取此JSON文件_Android_Json_Kotlin_Gson - Fatal编程技术网

Android 如何读取此JSON文件

Android 如何读取此JSON文件,android,json,kotlin,gson,Android,Json,Kotlin,Gson,我不熟悉android和JSON,但我正在制作一个非常简单的应用程序,它应该在一个回收器视图中显示数据,并使用JSON文件提供的信息,编写如下: {"server":"SuspServer","team":[{"name":"john","lastName":"doe"},{"name":"jane","la

我不熟悉android和JSON,但我正在制作一个非常简单的应用程序,它应该在一个回收器视图中显示数据,并使用JSON文件提供的信息,编写如下:

{"server":"SuspServer","team":[{"name":"john","lastName":"doe"},{"name":"jane","lastName":"doe"}]}
val jsonRequest : StringRequest = StringRequest(Request.Method.GET, url, Response.Listener { response->
        //Log.i("JSON", response.toString())
        val gson = Gson()
        val itemType = object : TypeToken<List<suspect>>(){}.type
        val suspects : List<suspect> = gson.fromJson(response.toString(), itemType)
它会收到这样的信息请求:

{"server":"SuspServer","team":[{"name":"john","lastName":"doe"},{"name":"jane","lastName":"doe"}]}
val jsonRequest : StringRequest = StringRequest(Request.Method.GET, url, Response.Listener { response->
        //Log.i("JSON", response.toString())
        val gson = Gson()
        val itemType = object : TypeToken<List<suspect>>(){}.type
        val suspects : List<suspect> = gson.fromJson(response.toString(), itemType)
val-jsonRequest:StringRequest=StringRequest(Request.Method.GET,url,Response.Listener{Response->
//Log.i(“JSON”,response.toString())
val gson=gson()
val itemType=object:TypeToken(){}.type
val怀疑:List=gson.fromJson(response.toString(),itemType)

我的直觉(我在写这个问题时注意到了这个错误)是我在询问一个可疑对象的列表,当它接收字符串“name”和“lastName”时由于参数在JSON中无法识别,但我不知道如何以JSON文件中写入的格式引用它们

您可以使用此方法从资源中读取JSON:


// JSON data
fun Context.readJsonAsset(filename: String): String {
    val inputStream = assets.open(filename)
    val size = inputStream.available()
    val buffer = ByteArray(size)
    inputStream.read(buffer)
    inputStream.close()
    return String(buffer, Charset.defaultCharset())
}


您可以使用此方法从资源中读取json:


// JSON data
fun Context.readJsonAsset(filename: String): String {
    val inputStream = assets.open(filename)
    val size = inputStream.available()
    val buffer = ByteArray(size)
    inputStream.read(buffer)
    inputStream.close()
    return String(buffer, Charset.defaultCharset())
}


您的json结构表示如下所示的类:

{"server":"SuspServer","team":[{"name":"john","lastName":"doe"},{"name":"jane","lastName":"doe"}]}
val jsonRequest : StringRequest = StringRequest(Request.Method.GET, url, Response.Listener { response->
        //Log.i("JSON", response.toString())
        val gson = Gson()
        val itemType = object : TypeToken<List<suspect>>(){}.type
        val suspects : List<suspect> = gson.fromJson(response.toString(), itemType)
数据类MyClass(
val服务器:字符串,
val团队:列表
)
数据类团队(
val name:String,
val lastName:String
)
因此,当您进行反序列化时,只需为其指定类型:

val myDeserializedObject:MyClass=gson.fromJson(response.toString(),MyClass::class.java)

您的json结构表示如下所示的类:

{"server":"SuspServer","team":[{"name":"john","lastName":"doe"},{"name":"jane","lastName":"doe"}]}
val jsonRequest : StringRequest = StringRequest(Request.Method.GET, url, Response.Listener { response->
        //Log.i("JSON", response.toString())
        val gson = Gson()
        val itemType = object : TypeToken<List<suspect>>(){}.type
        val suspects : List<suspect> = gson.fromJson(response.toString(), itemType)
数据类MyClass(
val服务器:字符串,
val团队:列表
)
数据类团队(
val name:String,
val lastName:String
)
因此,当您进行反序列化时,只需为其指定类型:

val myDeserializedObject:MyClass=gson.fromJson(response.toString(),MyClass::class.java)