如何从Android上的改装响应中获取嵌套JSON对象和数组?
我试图做的是使用改型从web响应中获取嵌套的JSON对象和数组 答复是:如何从Android上的改装响应中获取嵌套JSON对象和数组?,android,arrays,json,retrofit,Android,Arrays,Json,Retrofit,我试图做的是使用改型从web响应中获取嵌套的JSON对象和数组 答复是: { "user": [ { "name": "Kaleigh Stamm", "post": { "id": 1234, "link": [ "ht
{
"user": [
{
"name": "Kaleigh Stamm",
"post": {
"id": 1234,
"link": [
"https://www.link1.com"
"https://www.link2.com"
"https://www.link3.com"
]
}
}
}
我可以毫无问题地获得名称,但我无法解析post对象,也无法解析可能为null或具有多个链接的链接数组。我现在知道一些post类需要实现,但不知道如何实现
我有一个用户类
class user {
@SerializedName("name")
var name = ""
}
class userPost {
@SerializedName("id")
private var mId: Int? = null
@SerializedName("link")
private var mLink: ArrayList<String>? = null
fun getId(): Int {
return mId!!
}
fun setId(id: Int) {
mId = id
}
fun getLink(): ArrayList<String> {
return mLink!!
}
fun setLink(link: ArrayList<String>) {
mLink= link
}
}
我有一个接口
interface userService {
@GET("baseurlinfo")
fun getUserList() : Call<userResponse>
}
接口用户服务{
@获取(“baseurlinfo”)
fun getUserList():调用
}
这是我的主要任务
var BaseUrl = "https://baseURL.com/"
val retrofit = Retrofit.Builder()
.baseUrl(BaseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
val service = retrofit.create(userService::class.java)
val call = service.getUserList()
call.enqueue(object : Callback<userResponse> {
override fun onResponse(call: Call<userResponse>, response: Response<userResponse>) {
if (response.code() == 200) {
val userResponse = response.body()!!
for( user in userResponse.user){
Log.v("MainActivity", user.name)
}
}
}
override fun onFailure(call: Call<userResponse>, t: Throwable) {
Log.v("MainActivity", t.toString())
}
})
var BaseUrl=”https://baseURL.com/"
val reformation=reformation.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
val service=reformation.create(userService::class.java)
val call=service.getUserList()
排队(对象:Callback{
覆盖fun onResponse(调用:调用,响应:响应){
if(response.code()==200){
val userResponse=response.body()!!
for(userResponse.user中的用户){
Log.v(“MainActivity”,user.name)
}
}
}
覆盖失效时的乐趣(调用:调用,t:可丢弃){
Log.v(“MainActivity”,t.toString())
}
})
关于如何处理JSON响应其余部分的任何帮助或建议都将非常有用,谢谢。您的用户类不完整。首先在此站点()中添加以下JSON。 然后获取java类,然后将其粘贴到android studio中。然后android studio自动将其转换为kotlin类。然后只需从创建的用户类获取链接。 此外,您的JSON格式不正确,应该如下所示:
{
"user": [
{
"name": "Kaleigh Stamm",
"post": {
"id": 1234,
"link": [
"https://www.link1.com",
"https://www.link2.com",
"https://www.link3.com"
]
}
}
]
}
您的用户类不完整。首先在此站点()中添加以下JSON。 然后获取java类,然后将其粘贴到android studio中。然后android studio自动将其转换为kotlin类。然后只需从创建的用户类获取链接。 此外,您的JSON格式不正确,应该如下所示:
{
"user": [
{
"name": "Kaleigh Stamm",
"post": {
"id": 1234,
"link": [
"https://www.link1.com",
"https://www.link2.com",
"https://www.link3.com"
]
}
}
]
}
创建一个post类并从user类调用它
class user {
@SerializedName("name")
var name = ""
}
class userPost {
@SerializedName("id")
private var mId: Int? = null
@SerializedName("link")
private var mLink: ArrayList<String>? = null
fun getId(): Int {
return mId!!
}
fun setId(id: Int) {
mId = id
}
fun getLink(): ArrayList<String> {
return mLink!!
}
fun setLink(link: ArrayList<String>) {
mLink= link
}
}
创建一个post类并从user类调用它
class user {
@SerializedName("name")
var name = ""
}
class userPost {
@SerializedName("id")
private var mId: Int? = null
@SerializedName("link")
private var mLink: ArrayList<String>? = null
fun getId(): Int {
return mId!!
}
fun setId(id: Int) {
mId = id
}
fun getLink(): ArrayList<String> {
return mLink!!
}
fun setLink(link: ArrayList<String>) {
mLink= link
}
}
谢谢你的回答。json格式是从web服务下载的,我无法访问。谢谢您的回复。json格式是从我无法访问的web服务下载的