首页 > 解决方案 > 改造生成无格式的复杂json对象

问题描述

我有一个非常奇怪的问题

我正在尝试构建一个包含嵌套 json 的复杂 json 对象

我已经创建了它,但是当我发送请求时它崩溃了

这是我需要的格式

{"JR":"{"Text":"","userID":4,"Context":"","ClinicId":1}","TO":"getWatsonMessage","ver":2}

我在请求正文中发现如下:

{"JR":"{\"Text\":\"\",\"userID\":4,\"Context\":\"\",\"ClinicId\":1}","TO":"getWatsonMessage","ver":2}

这使应用程序崩溃

这是我的代码

data class MyBody @JvmOverloads constructor(
    @SerializedName("ver") val version: Int,
    @SerializedName("TO") val methodName: String,
    @SerializedName("JR") val jsonParams: String,
    @SerializedName("Method") var methodType: String? = null
)

这就是我创建子 json 对象的方式

val jsonJR = JSONObject()
        jsonJR.put("Text",text)
        jsonJR.put("userID",userId)
        jsonJR.put("Context",context)
        jsonJR.put("ClinicId",clinicId)

有人可以帮忙吗?

标签: androidjsonkotlinretrofit

解决方案


看来问题出在您的字符串类型的 JR 上。所有其他参数的格式都正确吗?因此,我建议您将类型 JR 提供给另一个自定义数据类,例如

data class JRDataClass{ Text : String, //以及其他数据类型 }


推荐阅读