2017-08-26 5 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(); 

    } 

を以下を試してみましたが、私はJSONObjectがサポート返される型の一部ではありません理解し、次のメッセージ

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 

を取得し、私がどれだけ私ができるかを知りたいですちょうどそのままエンドポイントからJSON文字列レスポンスを出力してください

+0

なぜこれをやりたいですか? – saiyr

答えて

0

JSONを(エンドポイント内の)Stringにラップしてラッパーオブジェクトを返すことができます。ラッパーオブジェクトは、String属性が1つのみの単純なPOJOにすることができます。その後、APIのコンシューマ側では、JSONを表す文字列を読んで、必要に応じて使用するだけです。

関連する問題