2013-11-01 4 views
0

클라이언트 (브라우저)에서 JSON 문자열을 보냈습니다. 이미 사용자가 정의한 컬렉션이있는 mongoDB 데이터베이스에 저장하려고합니다. 성공적으로 Morphia를 사용하여 객체를 저장합니다. 그러나 "bands"컬렉션에 넣고 자하는 클라이언트에서 JSON 문자열이 이미 반환 된 경우 어떻게해야합니까?JSON을 엔티티로 변환하고 morphia를 사용하여 mongoDB에 저장

 Mongo mongo = new Mongo("localhost"); 
     Datastore datastore = new Morphia().createDatastore(mongo, 
       "bandmanager"); 
     Band band = new Band(); 
     band.setName("Punjabi band"); 
     band.getMembers().add("Lucky1"); 
     band.getMembers().add("Lucky2"); 
     band.getMembers().add("Lucky3"); 
     band.getMembers().add("Lucky4"); 
     band.getMembers().add("Lucky5"); 
     band.getMembers().add("Lucky6"); 
     band.setGenre("Punjabi"); 
     datastore.save(band); 

답변

0

@Entity("bands")을 사용하여 밴드에 주석을 추가 했습니까? 네가 무엇을 요구하는지 모르겠다. json 문자열을 Band 객체로 변환하는 방법을 묻고 있니? 그렇다면 jackson

+0

Band @ Entity.SO에 주석을 달았습니다. 클라이언트에서 JSON을 파싱 한 다음 Band 객체를 JSON으로 다시 저장하도록 설정해야하는 이유가 무엇인지 생각했습니다. 이해하시기 바랍니다. –

+1

음, morphia는 java 객체를 다루기 때문에 만약 morphia를 사용하고 있다면, json을 java 객체에 매핑 할 필요가 있습니다. 또는 해당 json 문서에서 생성 된 Map을 가져 와서 직접 java 드라이버에 전달할 수 있습니다. 이 시점에서 모든 문서 키가 올바르게 매핑되고 값이 올바르게 입력되었는지 확인해야합니다. 잠재적으로 "더 빨리"실행될 수 있지만, 정면과 유지 관리가 훨씬 더 많이 필요합니다. – evanchooly

+0

안내 해주셔서 감사합니다 :). –

0

이미 JSON 개체가있는 경우 Morphia가 필요하지 않습니다. 당신은 자바 드라이버를 사용하여 다음과 같이 간단하게 할 수 있습니다 이것에 대한 전체 블로그 게시물에 대한

DBObject dbObject = (DBObject) JSON.parse(yourJsonString); 

http://www.mkyong.com/mongodb/java-mongodb-convert-json-data-to-dbobject/

PS : 클라이언트에서 얻을 JSON을 소독하는 것을 잊지 마세요!

관련 문제