2017-08-26 61 views
0

我有一個雲終端函數,返回一個json字符串作爲響應。 api端點向雲端功能發出http請求。我該如何返回json字符串響應。我嘗試以下(就像一個例子)用java應用引擎返回JSONObject

@ApiMethod(
      name = "json", 
      httpMethod = ApiMethod.HttpMethod.GET 
    ) 
    public JsonObject json() 
    { 
     String item = "{\"name\":\"Josh\",\"sex\":\"male\"}"; 
     JsonParser jsonParser = new JsonParser(); 
     return jsonParser.parse(item).getAsJsonObject(); 

    } 

,我得到以下信息

WARNING: exception occurred while invoking backend method 
[INFO] GCLOUD: java.io.IOException: com.fasterxml.jackson.databind.JsonMappingException: JsonObject (through reference chain: endpoints.repackaged.com.google.gson.JsonObject["asInt"] 
Caused by: java.lang.UnsupportedOperationException: JsonObject 

我理解的JSONObject是不支持的返回類型的一部分,我只是想知道我怎麼能只需從端點輸出json字符串響應就像它是

+0

你爲什麼想這樣做? – saiyr

回答

0

你可以做的是把你的JSON包裝成一個字符串(在你的端點)並返回包裝器對象。你的包裝對象可以是一個簡單的POJO,只有一個String屬性。然後在你的API消費者方面,你只需讀取字符串(代表你的JSON)並按照你的意願使用它。