2015-02-09 78 views
0

根據API,我們應該可以做到這一點。JSONObject.toString類型不匹配不能從JSONString轉換爲JSONObject

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。爲什麼這不起作用,應該怎麼辦?

+0

什麼故障,你正好面對? – h7r 2015-02-09 18:52:13

回答

2

你的方法聲明它返回一個JSONObject類型的值。但是:

return payload.toString(); 

返回類型String的值。沒有從StringJSONObject的隱式轉換,因此編譯時錯誤。

如果您確實需要一個字符串,請更改方法的返回類型。如果你真的想要一個JSONObject,只需更改返回語句爲:

return payload; 
相關問題