Play! / Morphia - вернуть MongoID в виде строки (внутри json) / поле blobFieldsTracker - PullRequest
1 голос
/ 08 марта 2012

Я относительно новичок в Java и хочу попробовать что-то новое.В данный момент я пробую Java-игру.

Я пытаюсь переписать немного REST JSON Api, написанного на php, в качестве службы игрового отдыха.

Я использую mongodb в качестве хранилища данных, и поэтому я установил morphia.Все работает как положено.Но я немного озадачен результатом json, который производит renderJSON ().

Вот код моей модели:

@AutoTimestamp
@Entity
public class Bookmark extends Model {
public String title;
public String url;
public String description;
public List tags;
public boolean is_private;

public Bookmark(String title,
                String url,
                String description,
                String tags,
                boolean is_private)
{
    this.title          = title;
    this.url            = url;
    this.description    = description;
    this.tags           = Arrays.asList(tags.split(" "));
    this.is_private     = is_private;
}
 }

Чтобы получить все закладки, я использую в контроллере следующий метод:

    public static void listAll() {
        List<Bookmark> bookmarks = Bookmark.findAll();
        renderJSON(bookmarks);
    }

Вотстрока результата:

[{"title":"Test","url":"http://www.google.de","description":"test","tags":["tag1","tag2","tag3","tag5","tag0209135913598"],"is_private":true,"_id":{"_time":1331202670,"_machine":-637116226,"_inc":989037616,"_new":false},"_created":1331202670469,"_modified":1331202670469,"blobFieldsTracker":{}}]

Теперь я немного запутался из-за объекта "_id" с атрибутами "_time", "_machine" и так далее.И я также запутался в "blobFieldsTracker".

Для атрибута "_id" я бы ожидал монгоид.Я не смог найти что-либо связанное с этим в документах или в Google, поэтому мой вопрос заключается в том, что мне нужно сделать, чтобы включить «настоящий» монгоид в строку json.

1 Ответ

1 голос
/ 08 марта 2012

Пожалуйста, используйте следующий оператор рендеринга:

renderJSON(bookmarks, new play.modules.morphia.utils.ObjectIdGsonAdapter());

О blobFieldsTracker, это плагин morphia для служебного поля, улучшенный для вашего модельного класса.Пока просто игнорируйте это в своем javascript.

...