问题描述
我很难将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 (将#修改为@)