Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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/4/json/14.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 Moshi和2:解析根元素的内容_Android_Json_Kotlin_Retrofit2_Moshi - Fatal编程技术网

Android Moshi和2:解析根元素的内容

Android Moshi和2:解析根元素的内容,android,json,kotlin,retrofit2,moshi,Android,Json,Kotlin,Retrofit2,Moshi,从今天起,我收到了如下json响应: { "status" : "Ok", "otherField" : "Somevalues" } 我把它映射到像 data class MyResponse( val status : String, val otherField : String ) 现在,响应结构发生了如下变化 { "rootElement" : { "status" : "Ok", "otherField" : "So

从今天起,我收到了如下json响应:

{
   "status" : "Ok",
   "otherField" : "Somevalues" 
}
我把它映射到像

data class MyResponse(
    val status : String,
    val otherField : String
)
现在,响应结构发生了如下变化

{
   "rootElement" : {
       "status" : "Ok",
       "otherField" : "Somevalues" 
    }
}
有一种方法可以告诉Moshi直接解析“rootElement”的内容,而不改变“MyResponse”结构

有一种方法可以告诉Moshi直接解析“rootElement”的内容,而不改变“MyResponse”结构

如果我正确理解了您的需求,那么您可以解析
rootElement
的内容,而无需更改
MyResponse
数据类。再创建一个Kotlin数据类,如下所示

data class ResponseRoot (
    val rootElement : MyResponse
)
并将此
ResponseRoot
数据类返回类型用于改装响应,而不是
MyResponse

在API接口中,只需进行更改

@GET("url/here/")
fun fooBar(/* paramters if there any */): Call<ResponseRoot>
@GET(“url/here/”)
fun fooBar(/*参数,如果有*/):调用