2010-09-07 37 views

cevap

2

biz JSON içine modelimizi dönüştürmek için google GSON kullanılan MongoDB bizim Modeli almak için, MongoDB onu kullanmak amacıyla this example

+2

Guess I Mongo dan kodlama katılmak ve bir dış kitaplık yapabiliriz:

JSONObject newObject = new JSONObject(bsonString); System.out.println(newObject.get("date")); 

çıkan çıkış şey gibidir. Daha "olgun" bir şeyden umuyordum, bahşiş için teşekkürler. –

+2

dürüst olmak gerekirse mongoDB örneği biraz gecikti! Neden json dönüşümü kadar kolay olamazdı? – nightograph

+3

Yanıt, kırık bir bağlantıya sahip – seinecle

1

bakmak istiyorsanız BSON sitethis

işaret edilmektedir Önce ve sonra oluşturulan JSON dizesini MongoDB'nize yerleştirebileceğiniz bir DBObject'e ayrıştırmak için JSON util parse method from MongoDB'u kullandık. Dürüst olmak için performanstan haberim yok.

+0

Bu yaklaşımdaki sorun, bazı veri türlerini (Tarih gibi) kaybedeceğinizdir. – Enrichman

1

Ayrıca, BSON verilerini işlemek için Jackson kullanmasına izin veren oldukça yeni bir BSON4Jackson projesi vardır. Bu, tam veri bağlamasının (POJO'lara/POJO'lara), ağaç modelinin, hatta okuma/yazma işleminin BSON formatı ile yapılabilmesi anlamına gelir.

+0

Jackson'dan nefret ediyorum. Onun API sadece "aşırı-komplikasyon" çığlık atıyor. Crockford'un kütüphanesi en iyisi ve en küçüğüdür. –

+4

Kötü düşünülmüş fikriniz var. Org.json'ın referans uygulaması gibi oyuncak libsleri sizin için muhtemelen uygun. – StaxMan

2

Ayrıca ebson da vardır. Java o zaman o JSONObject ile sarabilirsiniz bir String o dönüştürmek, bir BSON nesneyi saklamak için

6

Sen MongoDB sürücüsünü kullanabilirsiniz ... denemediyseniz ettik.

Örneğin, burada ben normal bir belge oluşturmak şekli şöyledir: nesnenin bir String temsilini elde etmek, sonra

BasicDBObject obj = new BasicDBObject(); 
obj.put("name", "Matt"); 
obj.put("date", new Date()); 

, basitçe çağırır:

String bsonString = obj.toString(); 

bir JSONObject ile sarın ve BSON uyumlu bir biçimde döndürmesi gereken tarih niteliğini al.

{"$date":"2012-08-10T05:22:53.872Z"}