【问题标题】:return JSONObject with java app engine使用 Java 应用引擎返回 JSONObject
【发布时间】:2018-02-04 12:57:53
【问题描述】:

我有一个云端点函数,它返回一个 json 字符串作为响应。 api 端点向云函数发出 http 请求。如何按原样返回 json 字符串响应。我尝试了以下(仅作为示例)

@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 字符串响应,就像它一样

【问题讨论】:

  • 你为什么要这样做?

标签: java json google-app-engine google-cloud-endpoints


【解决方案1】:

您可以做的是将您的 JSON 包装成一个字符串(在您的端点中)并返回包装器对象。您的包装器对象可以是一个简单的 POJO,只有一个 String 属性。然后在您的 API 使用者端,您只需读取字符串(代表您的 JSON)并按照您的意愿使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2013-10-12
    • 1970-01-01
    • 2018-05-24
    相关资源
    最近更新 更多