KotlinGson to Json返回用双引号引起来的字符串

62o28rlo  于 2022-11-06  发布在  Kotlin
关注(0)|答案(1)|浏览(292)

我正在尝试从Kotlin对象编码JSON对象:

class RequestData(val phone: String)

...

val requestJson = Gson().toJson(RequestData("79008007060"))

编码后,我得到了带引号的字符串

"{\"phoneNumber\":\"\"}"

取而代之

{"phoneNumber":""}

你能告诉我为什么会发生这种情况以及如何解决它吗?

llycmphe

llycmphe1#

我找到了一个解决方案。我在其他地方犯了错误。我试图用Retrofit将POST JSON请求发送到服务器,并将对象编码为JSON字符串,然后将其放在@Body中:

interface AuthService {
    @POST("requestPinCode")
    fun requestPinCode(@Body body: String): Observable<ApiResult>
}

...

data class RequestData(val phone: String)

...

val requestJson = Gson().toJson(RequestData("79008007060"))
authService.requestPinCode(requestJson)

但正确方法是将未编码对象放到@Body中

interface AuthService {

    @POST("requestPinCode")
    fun requestPinCode(@Body body: RequestData): Observable<ApiResult>

}

...

data class RequestData(val phone: String)

...

authService.requestPinCode(RequestData("79008007060"))

相关问题