Kotlin,将地图解析为JSON

问题描述

我很难将Kotlin映射转换为JSON对象,我接管的项目使用了 javax.ws.rs.client.Entity库,用于将kotlin映射转换为JSON实体,以通过Jira rest api与Jira服务器通信,并最终打开新问题。
问题是我从服务器取回400 Bad Request,并且当我打印出非JSON格式的实体时,我使用的代码是:

val fields = jiraConfig.fields
                .plus(Pair("summary",summary))
                .plus(Pair("description",description))
                .plus(Pair("project",mapOf("key" to key)))
                .plus(Pair("reporter",mapOf("name" to username)))
                .map { Pair(it.id,it.value) }
                .toMap()
val payload = mapOf("fields" to fields)
val jsonPayload = Entity.json(payload)
println(jsonPayload)
val response = target
                .path("rest/api/2/issue")
                .request(MediaType.APPLICATION_JSON_TYPE)
                .post(Entity.json(jsonPayload ))

因此,当我打印出jsonPayload变量时,它不会显示为JSON格式:

Entity{entity={fields={components=[{id=ACOMPONENT}],FIELD=FIELDVALUE,ANOTHERFIELD={value=AVALUE},issuetype={name=ANISSUETYPE},labels=[ALABEL],summary=ASUMMARY,description=project={key=AKEY},reporter={name=ANAME}}},variant=Variant[mediaType=application/json,language=null,encoding=null],annotations=[]}

这显然不是JSON格式,这可能是Jira不读取它的原因。
我做错什么了吗? shal我可以使用其他方法使用javax.ws.rs.client.Entity将地图正确地转换为JSON吗?
当我尝试使用带有硬编码JSON的curl与Jira API产生问题时,它工作得很好:

{
        "fields": {
                "project": {
                        "key": "AKEY"
                },"summary": "A SUMMARY","description": "A DESCRIPTION","reporter": {
                        "name": "ANAME"
                },"issuetype": {
                        "name": "ANISSUETYPE"
                }
        }
}

欢呼

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)