私はMongoDbにまったく慣れていません。検索を使用して、JSON 形式で結果を取得します。
{"Name": "Harshil", "Age":20}
だから私が必要とするのは、これをJavaで解析し、変数の値を取得することです。
String name should contain Harshil
int age should contain 20
これらの詳細をJAVAオブジェクトに保存する方法はありますか?
GSONライブラリを見てください。JSON を Java オブジェクトに、またはその逆に変換します。
非推奨のメソッドを使用したくないため、次のコードを使用して使用できます。
MongoClient mongo = new MongoClient( "localhost" , 27017 );
MongoDatabase database = mongo.getDatabase("your_db_name");
MongoCollection<Document> collection = database.getCollection("your_collection_name");
FindIterable<Document> iterDoc = collection.find();
MongoCursor<Document> dbc = iterDoc.iterator();
while(dbc.hasNext()){
try {
JsonParser jsonParser = new JsonFactory().createParser(dbc.next().toJson());
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(jsonParser, Person.class);
String name = person.get("Name");
String age = person.get("Age");
} catch (Exception e){
e.printStackTrace();
}
JsonFactory、JsonParserなど。Document を関連する Entity オブジェクトに逆シリアル化するために Jackson から使用されています。
Java ドライバーでそれを行うことができます:
DBObject dbo = ...
String s = dbo.getString("Name")
int i = dbo.getInt("Age")
管理するオブジェクトが複数ある場合は、Java ドライバーの上に別のフレームワークを使用することを検討する必要があります。
モルフィアを検討しましたか?
@Entity
class Person{
@Property("Name") Date name;
@Property("Age") Date age;
}