2017-07-20 4 views
0

J'essaie de récupérer le document à partir du cloudant et après l'extraction, il ne peut pas convertir les objets imbriqués de l'interface qu'il contient dans la classe du modèle. Dans mon cas, la classe de service a plusieurs interfaces en tant que variables membres et je ne peux pas la convertir tout en obtenant du document à partir du cloud.java-cloudant- Pourquoi la méthode find ne renvoie pas JSON au lieu du flux d'entrée?

Existe-t-il un meilleur moyen de le récupérer? ou la bibliothèque cloud peut-elle fournir une méthode avec un type de retour comme JSONString (la façon dont ils acceptent json comme paramètre?)

Répondre

2

Vous pouvez utiliser JSONObject à la place de votre classe Service. Ajouter la dépendance maven suivante:

<dependency> 
    <groupId>org.apache.wink</groupId> 
    <artifactId>wink-json4j</artifactId> 
    <version>1.4</version> 
</dependency> 

Importation JSONObject dans votre classe:

import org.apache.wink.json4j.JSONObject; 

Accéder au document de la base de données comme JSONObject:

JSONObject service = getDB().find(JSONObject.class, service.get_id()); 

Pour votre information, je crois JSONObject de Google Gson travaillera également:

<dependency> 
    <groupId>com.google.code.gson</groupId> 
    <artifactId>gson</artifactId> 
    <version>2.7</version> 
</dependency> 
+0

Jamais pensé de cette façon! Merci :) – shraddha