类型不匹配:无法从org.json.JSONObject转换为org.json.simple.JSONObject

时间:2016-01-07 13:42:22

标签: java jira-zephyr

执行以下代码时,出现类型不匹配错误。请帮我解决一下。

/**
 * Gets the versionID for the project. 
 * 
 * @param versionName
 * @param projectId
 * @throws IOException
 * @return the ID for the specified Version in the specified Project
 */
public static String getVersionID(final String versionName, final String projectId)
        throws IOException {
    // Get list of versions on the specified project
    final JSONObject projectJsonObj =
            httpGetJSONObject(ZAPI_URL + "util/versionBoard-list?projectId=" + projectId);
    if (null == projectJsonObj) {
        throw new IllegalStateException("JSONObject is null for projectId=" + projectId);
    }

    final JSONArray versionOptions = (JSONArray) projectJsonObj.get("versionOptions");

    // Iterate over versions
    for (int i = 0; i < versionOptions.length(); i++) {
        final JSONObject obj2 = versionOptions.getJSONObject(i);
        // If label matches specified version name
        if (obj2.getString("label").equals(versionName)) {
            // Return the ID for this version
            return obj2.get("value");
           // return obj2.getString("value");
        }
    }

    throw new IllegalStateException("Version ID not found for versionName=" + versionName);
}

错误发生在以下行:

final JSONObject obj2 = versionOptions.getJSONObject(i);

然后是if部分和return部分。

1 个答案:

答案 0 :(得分:2)

确保您导入的是org.json.JSONObject,而不是org.json.simple.JSONObject。该错误表明您的代码正在尝试转换为后者,但收到了前者。因为这两个类具有相同的本地名称,所以很容易意外导入错误的名称。