如何解决Jira ServiceDesk 创建请求 API - 将 String[] 添加到自定义字段 (Java)
背景:尝试在 Jira ServiceDesk 创建请求 API 调用的输入中设置自定义字段
成功:正在创建票证。正在设置单个字符串值自定义字段。
问题:使用 String[] 值的自定义字段存在问题。
JSONObject args = new JSONObject();
args.put("serviceDeskId",projectid);
args.put("requestTypeId",issuetypeid);
requestFieldValues.put("summary",summary);
requestFieldValues.put("description",description);
// Process Custom Fields
if (customFields != null) {
customFields().forEach((key,value) -> {
if (value != null) {
if (customFieldIdMap.get(key) != null) {
try {
if (isArray(value)) {
List<Map<String,String>> listofMaps = new ArrayList<>();
for (String val : (String[]) value) {
listofMaps.add(new HashMap<String,String>() {
{
put("value",val);
}
});
}
requestFieldValues.put(customFieldIdMap.get(key),listofMaps);
/*for (String val: (String[]) value) {
requestFieldValues.put(customFieldIdMap.get(key),new HashMap <String,String>() {{
put("value",val);
}});
}*/
} else {
requestFieldValues.put(customFieldIdMap.get(key),new HashMap<String,String>() {
{
put("value",(String) value);
}
});
}
} catch (JSONException exc) {
customFieldErrors.append(exc.getMessage());
}
}
}
});
}
args.put("requestFieldValues",requestFieldValues);
我已经阅读了此处和其他来源的多篇文章,但没有一篇能解决我的问题。
解决方法
Jira 的文本字段(多行)和文本字段(单行)都将它们的值在内部存储为单个字符串。多行变体使用 CR+LF(回车+换行)来分隔显示的字符串。
因此,发送一个像 "a\r\nb"
这样的字符串应该会给你两行分别带有“a”和“b”的行。
请注意,我发现 KB article 仅使用 \n
而不是 \r\n
,因此 Jira 版本之间可能存在差异。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。