몽고에서 Spring Boot을 사용하여 생 JSON을 저장하는 방법
JSON으로 HTTP PUT 요청을 받아서 몽고에 수정 없이 보관하고 싶습니다.이거 어떻게 해요?내가 가진 최선은 이것입니다.
@RestController
public class ConfigurationController {
@Autowired
private MongoTemplate mongoTemplate;
@RequestMapping
public DBObject index() {
return mongoTemplate.getCollection("foo").findOne();
}
@RequestMapping(method = RequestMethod.PUT)
ResponseEntity<?> add(@RequestBody DBObject object) {
mongoTemplate.insert(object, "foo");
return new ResponseEntity<>(null, HttpStatus.CREATED);
}
}
Mongodb의 최신 버전(mongo-java-driver 3.0+)에서는 API가 org.bson을 사용합니다.문서화하면 솔루션은 다음과 같습니다.
@RestController
public class ConfigurationController {
@Autowired
private MongoTemplate mongoTemplate;
@RequestMapping(method = RequestMethod.PUT)
ResponseEntity<?> add(@RequestBody String jsonString) {
Document doc = Document.parse(jsonString)
mongoTemplate.insert(doc, "foo");
return new ResponseEntity<>(null, HttpStatus.CREATED);
}
}
가장 좋은 해결책은 아니지만, 이와 같은 것이 효과가 있을 것입니다. 컨트롤러를 임의의 문자열을 허용하도록 변경합니다.
... add(@RequestBody String object) ...
http://www.mkyong.com/mongodb/java-mongodb-convert-json-data-to-dbobject/ 을 팔로우 합니다.
DBObject dbObject = (DBObject) com.mongodb.util.JSON.parse(object);
json-simple lib을 사용할 수 있으며 작고 우아한 json 객체를 가지고 있으며 모델 POJO에 사용하여 자동으로 mongo Object type으로 변환됩니다.
private JSONObject jsonSettings;
이것이 도움이 되는지 확신할 수 없습니다. 만약 당신이 당신의 문서에 지도를 작성하고 나중에 해시 지도에 "키-값" 쌍을 채우고 저장할 수 있는 옵션이 있다면요.예상대로 저장됩니다(JSON입니다).이것은 컴파일 시간 동안 키의 이름이나 값을 모를 때 도움이 될 것입니다.
raw j를 object/array에 저장하기 위해서는 유형을 Pojo 및/또는 서버측의 DTO 레벨에 "Object"로 선언하기만 하면 됩니다.
"Object" 유형은 Spring Data 및 MapStruct에서도 작동합니다.
그럼 고객측에서 json 데이터를 json 데이터로 보내주시면 됩니다.
언급URL : https://stackoverflow.com/questions/29656128/how-can-a-store-raw-json-in-mongo-using-spring-boot
'programing' 카테고리의 다른 글
화면이 1024px보다 좁을 경우 ADIV 숨기기 (0) | 2023.09.26 |
---|---|
GUID/UUID 데이터베이스 키의 장단점 (0) | 2023.09.26 |
Oracle PL/SQL의 웹 서비스 사용 (0) | 2023.09.26 |
jQuery를 사용하여 테이블의 행을 보기(element.scroll in View)로 스크롤하려면 어떻게 합니까? (0) | 2023.09.26 |
jQuery의 요소 총 너비(패딩 및 테두리 포함) (0) | 2023.09.26 |