2017-05-05 14 views
0

おはようJAX-RSでは正常に動作していない、私は一般的な持っている残りのサービスの答えと問題を抱えている、私は次のような構造を持つ汎用オブジェクトを持っています標準化された応答の目的と異なる残りの部分を満たすオブジェクトに反対する残り1は、以下の答え:休憩ジェネリックが

@Path("/pruebas") 
public class Pruebita { 
    @GET 
    public Data getalgo(){ 
     ObjectoDatos od=new ObjectoDatos(); 
     od.setPrueba("hola"); 
     od.setPrueba2("hola2"); 
     Data sd=new Data(); 
     sd.setData(od); 
     sd.setNumero_reg(1); 
     return sd; 
    } 
} 

が、それはあなたが見ることができるように、応答のJSON答えは次の満たしている場合にオブジェクトののtoStringとなっており、オブジェクトのデータを表示していない、誰かが私を助けることができますか?

{"data":"[email protected]","numero_reg":1} 

、これは誤りである、私は文字列オブジェクトになった、そしてオブジェクトに

+0

DocumentosクラスのtoStringメソッドをオーバーライドしましたか?このクラスには何がありますか? – Nathan

+0

DocumentosクラスをObjectMapperに追加しましたか? –

+0

はい、tostringメソッドがjpaエンティティをオーバーライドしていますが、私は "[email protected]"というgenelricメソッドのオーバーライドtostringメソッドを使わずにJava pojoを試しました – programmercito

答えて

0

いけない私は解決策を見つけた: 私は再パッケージ化グアバでハッシュマップクラスを使用します。

@Override 
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { 
    int response = responseContext.getStatus(); 
    Object entidad = responseContext.getEntity(); 
    if (entidad != null && response == 200) { 
     int nroRegistros = (entidad instanceof List) ? (((List) entidad).size()) : 1; 
     Map<String, Object> respuesta = Maps.newHashMap(); 
     respuesta.put("data", entidad); 
     if(nroRegistros != 1) { 
      respuesta.put("numero_reg", nroRegistros);     
     } 
     responseContext.setEntity(respuesta); 
    } 
} 

と正常に動作します。