【问题标题】:Parsing a value from a Java JSONArray从 Java JSONArray 解析值
【发布时间】:2020-07-06 12:25:45
【问题描述】:

我正在使用 JSONArray 类从 jira 页面解析一个字段,但我得到的是这种格式的解析字段:

["com.atlassian.greenhopper.service.sprint.Sprint@4104b49f
   [
      id=539,
      rapidViewId=20,
      state=FUTURE,
      name=Spring - February 2019 - Dev,
      startDate=<null>,
      endDate=<null>,
      completeDate=<null>,
      sequence=539,
      goal=<null>
   ]
"]

我想从这个JSONArray 中提取名称,但我不知道该怎么做,因为它不是JSON 格式。 任何帮助将不胜感激。

提前致谢。

我的代码:

final IssueField field = jira.getField(ISSUE_SPRINT_ID);
if (field == null) {
    log.error("Cannot load Sprint Info for issue {}", jira.getKey());
    return "NA";
}
final JSONArray data = (JSONArray) field.getValue();
if (data == null) {
    log.error("Cannot load Sprint Info for issue {}", jira.getKey());
    return "NA";
}

【问题讨论】:

  • 请出示您的代码。
  • 请将您的代码格式正确地放入您的问题中。

标签: java arrays json jira jira-rest-api


【解决方案1】:

发现了这个可怕的 hack Here,不是很好,但解决了我的问题 :)

/*
 * Horrible hack :( - but no other options apparently
 * See https://answers.atlassian.com/questions/92681/how-to-get-sprints-using-greenhopper-api
*/
private static final String NAME_FIELD_ATTRIBUTE = "name=";
private String extractSprintName(JSONArray fieldValue) {
    try {
        String value = (String) fieldValue.get(0);
        value = value.substring(value.indexOf(NAME_FIELD_ATTRIBUTE));
        return value.substring(NAME_FIELD_ATTRIBUTE.length(), value.indexOf(','));
    } catch ( JSONException e) {
        return "";
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多