Android 使用Gson提取json对象值

Android 使用Gson提取json对象值,android,kotlin,gson,Android,Kotlin,Gson,假设web api返回一个类似这样的json对象 { "something": "value" } 然后我使用Gson将其转换为本地类 webRequest.enqueue(object : Callback<WebResponse> { override fun onFailure(call: Call<WebResponse>, t: Throwable) { // Log.e(TAG, "Failed", t) }

假设web api返回一个类似这样的json对象

{
  "something": "value"
}
然后我使用Gson将其转换为本地类

webRequest.enqueue(object : Callback<WebResponse> {

    override fun onFailure(call: Call<WebResponse>, t: Throwable) {
        // Log.e(TAG, "Failed", t)
    }

    override fun onResponse(call: Call<WebResponse>, response: Response<WebResponse>) {
        // Extracting the value from something in json object
    }
})
试试这个

如果使用
LiveData

private val _webResponse = MutableLiveData<WebResponse>()
val webResponse: LiveData<WebResponse>
    get() = _webResponse

// Your request
webRequest.enqueue(object : Callback<WebResponse> {

    override fun onFailure(call: Call<WebResponse>, t: Throwable) {
        // Log.e(TAG, "Failed", t)
    }

    override fun onResponse(call: Call<WebResponse>, response: Response<WebResponse>) {
        // Extracting the value from something in json object
        if (response.isSuccessful()) {
           _webResponse.value = response.body()
        }
    }
})

// You can use above live data as follow
webresponse.observe(viewLifecycleOwner, Observer {
    if (it != null) {
        // Do something with your `WebResponse` object
        val something = it.something!!
    }
})
private val\u webResponse=MutableLiveData()
val webResponse:LiveData
get()=\u webResponse
//你的要求
排队(对象:回调){
覆盖失效时的乐趣(调用:调用,t:可丢弃){
//Log.e(标签“失败”,t)
}
覆盖fun onResponse(调用:调用,响应:响应){
//从json对象中提取值
if(response.issusccessful()){
_webResponse.value=response.body()
}
}
})
//您可以按如下方式使用上述实时数据
webresponse.observe(viewLifecycleOwner,Observer{
如果(it!=null){
//对“WebResponse”对象执行一些操作
瓦尔某物=它。某物!!
}
})

来自
onResponse()
方法的
response
对象将调用
WebResponse
对象,您可以使用该对象检索
内容
变量我尝试了
val WebResponse:WebResponse?=response.body()!!。一些东西
private val _webResponse = MutableLiveData<WebResponse>()
val webResponse: LiveData<WebResponse>
    get() = _webResponse

// Your request
webRequest.enqueue(object : Callback<WebResponse> {

    override fun onFailure(call: Call<WebResponse>, t: Throwable) {
        // Log.e(TAG, "Failed", t)
    }

    override fun onResponse(call: Call<WebResponse>, response: Response<WebResponse>) {
        // Extracting the value from something in json object
        if (response.isSuccessful()) {
           _webResponse.value = response.body()
        }
    }
})

// You can use above live data as follow
webresponse.observe(viewLifecycleOwner, Observer {
    if (it != null) {
        // Do something with your `WebResponse` object
        val something = it.something!!
    }
})