2015-05-27 3 views
-1

Мне нужно создать службу REST для MongoDB на Java, но у меня есть некоторые проблемы с отображением результата (JSON) на веб-странице URI. Это код общаться, получать данные из БД и построить JSON (с помощью библиотеки Google Gson):Проблема с сервисом @GET с MongoDB

public String getInfo() { 
     StringBuilder sb = new StringBuilder(""); 
     FindIterable<Document> iterable = db.getCollection("unicorns").find(); 
     Gson gson = new Gson(); 

     iterable.forEach(new Block<Document>() { 
      @Override 
      public void apply(final Document document) { 
       sb.append(document); 
      } 
     }); 

     String id = gson.toJson(sb); 

     return id; 
    } 

Это функция @GET в RESTful веб-сервиса:

@GET 
@Path("/DB") 
@Produces("application/json") 
public String getJson() { 
    ExampleMethods em = new ExampleMethods(); 
    return em.getInfo(); 
} 

И это то, что я вижу на веб-странице URI:

"Document{{_id\u003d554c724b1094a1039086df1c, name\u003dAurora, dob\u003dThu Jan 01 01:00:01 CET 1970, loves\u003d[carrot, grape], weight\u003d450.0, gender\u003df, vampires\u003d43.0}}Document{{_id\u003d554c72c81094a1039086df1d, name\u003dHorny, dob\u003dFri Mar 13 07:47:00 CET 1992, loves\u003d[carrot, papaya], weight\u003d600.0, gender\u003dm, vampires\u003d63.0}}Document{{_id\u003d554c72c81094a1039086df1e, name\u003dAurora, dob\u003dThu Jan 24 13:00:00 CET 1991, loves\u003d[carrot, grape], weight\u003d450.0, gender\u003df, vampires\u003d43.0}}Document{{_id\u003d554c72c81094a1039086df1f, name\u003dUnicrom, dob\u003dFri Feb 09 22:10:00 CET 1973, loves\u003d[energon, redbull], weight\u003d984.0, gender\u003dm, vampires\u003d182.0}}Document{{_id\u003d554c72c81094a1039086df21, name\u003dSolnara, dob\u003dThu Jul 04 02:01:00 CEST 1985, loves\u003d[apple, carrot, chocolate], weight\u003d550.0, gender\u003df, vampires\u003d80.0}}Document{{_id\u003d554c72c81094a1039086df22, name\u003dAyna, dob\u003dSat Mar 07 08:30:00 CET 1998, loves\u003d[strawberry, lemon], weight\u003d733.0, gender\u003df, vampires\u003d40.0}}Document{{_id\u003d554c72c81094a1039086df23, name\u003dKenny, dob\u003dTue Jul 01 10:42:00 CEST 1997, loves\u003d[grape, lemon], weight\u003d690.0, gender\u003dm, vampires\u003d39.0}}Document{{_id\u003d554c72c81094a1039086df24, name\u003dRaleigh, dob\u003dTue May 03 00:57:00 CEST 2005, loves\u003d[apple, sugar], weight\u003d421.0, gender\u003dm, vampires\u003d2.0}}Document{{_id\u003d554c72c81094a1039086df25, name\u003dLeia, dob\u003dMon Oct 08 14:53:00 CEST 2001, loves\u003d[apple, watermelon], weight\u003d601.0, gender\u003df, vampires\u003d33.0}}Document{{_id\u003d554c72c81094a1039086df26, name\u003dPilot, dob\u003dSat Mar 01 05:03:00 CET 1997, loves\u003d[apple, watermelon], weight\u003d650.0, gender\u003dm, vampires\u003d54.0}}Document{{_id\u003d554c72c81094a1039086df27, name\u003dNimue, dob\u003dMon Dec 20 16:15:00 CET 1999, loves\u003d[grape, carrot], weight\u003d540.0, gender\u003df}}" 

Я хочу лучше визуализировать информацию БД. Что я могу сделать? Каковы проблемы с кодом (как мне кажется)? Благодарим вас за помощь!

ответ

0

Вместо того чтобы неявно полагаться на метод toString() документа, который не возвращает строку JSON, попробуйте использовать метод toJson. В GSON не должно быть необходимости, поскольку метод toJson уже возвращает строку JSON.

Вы можете, однако, добавить дополнительную разметку JSON, так как, как только вы объедините несколько объектов JSON, объединенных вместе. Но с небольшой дополнительной работой вы превращаете это в правильный массив JSON.

Смежные вопросы