Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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_Arrays_Json_Retrofit - Fatal编程技术网

如何从Android上的改装响应中获取嵌套JSON对象和数组?

如何从Android上的改装响应中获取嵌套JSON对象和数组?,android,arrays,json,retrofit,Android,Arrays,Json,Retrofit,我试图做的是使用改型从web响应中获取嵌套的JSON对象和数组 答复是: { "user": [ { "name": "Kaleigh Stamm", "post": { "id": 1234, "link": [ "ht

我试图做的是使用改型从web响应中获取嵌套的JSON对象和数组

答复是:

{
"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服务下载的