Konlin中的Gson toJson和ArrayList
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Konlin中的Gson toJson和ArrayList相关的知识,希望对你有一定的参考价值。
与this问题类似,我想将一个对象(实际上,它是来自改进的API响应)转换为json字符串,因此将它存储在某处会更简单。
响应结构是这样的:
{
"metadata": {
"count": 0,
"type": "string"
},
"results": [
{
"obj1": {
"param1": "s1",
"param2": "s2"
},
"obj2": {
"param3": 0,
"param4": 0,
"param5": 0
},
"obj3": 0,
"obj4": "27/12/2017"
}
]
}
使用retrofit2,我将结果数组存储在List<MyResponse.Result>
中,这是我传递给Gson().toJson
的参数,如下所示:
var contentResponse: String = ""
try{
this.contentResponse.plus(Gson().toJson(response))
} catch (e: Exception){
Log.e("Gson error", e.toString())
}
不幸的是,我没有例外,但我的contentResponse
一直空着。我试图在上面提到的问题中使用该方法,但得到了相同的结果。有什么建议吗?
PS:如果有更简单的方法来获得String中的改进响应,它也可以提供帮助。
答案
字符串在JVM中是不可变的。调用
this.contentResponse.plus(Gson().toJson(response))
相当于
this.contentResponse + (Gson().toJson(response))
通过这种方式,您可以更好地看到您没有将结果分配给任何内容。将其更改为
this.contentResponse = this.contentResponse.plus(Gson().toJson(response))
以上是关于Konlin中的Gson toJson和ArrayList的主要内容,如果未能解决你的问题,请参考以下文章
来自Json和toJson的Gson用于在Java中返回null的简单对象
Gson toJson(),奇怪的行为(产生空的 json)