0

私はMongoDbにまったく慣れていません。検索を使用して、JSON 形式で結果を取得します。

{"Name": "Harshil", "Age":20} 

だから私が必要とするのは、これをJavaで解析し、変数の値を取得することです。

String name should contain Harshil
int age should contain 20

これらの詳細をJAVAオブジェクトに保存する方法はありますか?

4

9 に答える 9

4

GSONライブラリを見てください。JSON を Java オブジェクトに、またはその逆に変換します。

于 2013-10-22T06:47:02.703 に答える
1

非推奨のメソッドを使用したくないため、次のコードを使用して使用できます。

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 から使用されています。

于 2018-12-05T07:25:39.690 に答える
1

Java ドライバーでそれを行うことができます:

DBObject dbo = ...
String s = dbo.getString("Name")
int i = dbo.getInt("Age")

管理するオブジェクトが複数ある場合は、Java ドライバーの上に別のフレームワークを使用することを検討する必要があります。

于 2013-10-22T07:35:10.300 に答える
0

モルフィアを検討しましたか?

@Entity
class Person{
   @Property("Name") Date name;
   @Property("Age") Date age;
}
于 2013-10-22T07:08:40.887 に答える