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