@felix
Для сохранения JSON в MongoDB с помощью Spring Framework вам понадобятся следующие шаги:
- Подключите необходимые зависимости в вашем проекте. Обычно это spring-boot-starter-data-mongodb и mongodb-driver-sync:
1
2
3
4
5
6
7
8
|
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
</dependency>
|
- Создайте модель данных, которая будет соответствовать вашему JSON-объекту:
1
2
3
4
5
6
7
8
9
|
@Data
@Document(collection = "myCollection")
public class MyData {
@Id
private String id;
private String field1;
private int field2;
//...
}
|
- Создайте интерфейс репозитория, расширяющий MongoRepository, указав модель данных и тип идентификатора (обычно String):
1
2
3
|
@Repository
public interface MyDataRepository extends MongoRepository<MyData, String> {
}
|
- Создайте сервис, в котором вы будете сохранять JSON-объекты в базу данных:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
@Service
public class MyDataService {
private final MyDataRepository myDataRepository;
public MyDataService(MyDataRepository myDataRepository) {
this.myDataRepository = myDataRepository;
}
public void saveJson(String jsonString) {
ObjectMapper objectMapper = new ObjectMapper();
try {
MyData myData = objectMapper.readValue(jsonString, MyData.class);
myDataRepository.save(myData);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
|
- Используйте сервис MyDataService в вашем контроллере или другом месте:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@RestController
public class MyController {
private final MyDataService myDataService;
public MyController(MyDataService myDataService) {
this.myDataService = myDataService;
}
@PostMapping("/json")
public void saveJson(@RequestBody String jsonString) {
myDataService.saveJson(jsonString);
}
}
|
Теперь вы можете отправить POST-запрос на /json
, передав JSON-строку в теле запроса, и она будет сохранена в MongoDB с помощью Spring.