2012-03-08 11 views
1

これはJavaで比較的新しいもので、何か新しいものを試してみたい。現時点では、私はJavaフレームワークのプレイを試みています。Play!/ Morphia - MongoIDを文字列として返す(json内)/ blobFieldsTrackerフィールド

私がやろうとしているのは、プレイレストサービスとしてPHPで書かれた少しのREST JSON APIを書き直すことです。

私はデータストアとしてmongodbを使用していますので、私はmorphiaをインストールしました。すべてが期待どおりに動作しています。しかし、私は、renderJSON()が生成するjsonの結果について少し混乱しています。ここで

は私のモデルのコードです:

@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; 
} 
} 

コントローラ内で次の方法を使用してI'amすべてのブックマークを取得するには:ここで

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":{}}] 

属性「_time」、「_mach」を持つ「_id」オブジェクトについて今少し混乱しています。 ine "などがあります。そして、私は "blobFieldsTracker"についても混乱しています。

属性 "_id"の場合、私はモンゴイドを期待します。私はドキュメントやGoogle内でそれに関連する何かを見つけることができなかったので、私の質問はjson-string内に「本当の」モンゴイドを含めるために必要なことです。

答えて

1

文をレンダリングし、次を使用してください:blobFieldsTrackerについて

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

を、それはあなたのモデルクラスに強化され、ハウスキーピングフィールドmorphiaプラグインです。今のところ、あなたのjavascriptでそれを無視してください。

+0

ありがとうございました! – Marc

+0

最新バージョンでは、String型IDを使用できます。http://www.playframework.org/modules/morphia-1.2.8-RC1/model#id –

関連する問題