JSONObject.toString类型不匹配无法从JSONString转换为JSONObject

时间:2015-02-09 17:49:39

标签: java json

根据API我们应该能够做到这一点。

http://www.json.org/javadoc/org/json/JSONObject.html#toString()

  @Override
  public JSONObject buildPayload(BuildData buildData, String jenkinsUrl, List<String> logLines) {
    JSONObject payload = new JSONObject();
    payload.put("data", buildData.toJson());
    payload.put("message", logLines);
    payload.put("source", "jenkins");
    payload.put("source_host", jenkinsUrl);
    payload.put("@timestamp", buildData.getTimestamp());
    payload.put("@version", 1);

    // we need to flatten payload from JSONObject to String
    return payload.toString();
  }

显然,我们定义了有效负载,它是一个JSONObject。为什么这不起作用,应该做些什么?

1 个答案:

答案 0 :(得分:3)

您的方法声明它返回类型JSONObject的值。但是这个:

return payload.toString();

返回类型String的值。没有从StringJSONObject的隐式转换,因此编译时错误。

如果您真的想要一个字符串,请更改方法返回类型。如果您真的想要JSONObject,只需将return语句更改为:

return payload;