Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1K
Visualizações
Convertir un RequestBody json en un objeto - Spring Boot

Soy un principiante en el desarrollo de Java pero tengo experiencia previa en lenguajes de programación como PHP y Python. Tan poco confundido sobre cómo proceder en el arranque de primavera con el desarrollo.

Estoy desarrollando una API de descanso que tiene la siguiente solicitud

 { "key":"value", "key1":"value1", "platform_settings":[ {"key":"value"} ] }

Lo que hice

Creé un RestController que acepta la solicitud http y creé una función para el recurso

 public Share share(@RequestBody final Share share) { LOGGER.debug("This is the request", share); return share; // }

Pregunta 1: si se tratara de cualquier otro lenguaje de programación como PHP o Python, habrá una función de ayuda que aceptará la solicitud json y la convertirá en un objeto en el que puedo trabajar fácilmente.

En python es tan simple como

 import json import requests response = requests.get(...) json_data = json.loads(response.text) //can work on json_data anyway I want.

Pero en Java, tendré que crear una clase POJO, o tener una entidad jackson/JPA como dependencia que asignará la solicitud a una Clase (que debo predefinir con las solicitudes).

¿Hay alguna manera mejor de hacer esto? Para cada solicitud que haga, tendré que crear una clase a la que se pueda asignar la solicitud y tendré que definir la clase

 Entity package com.payunow.socialsharemodule.models; import java.util.Map; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Share { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String key; private String key1; private Map<String,String> platform_settings; public Share(String name, String description,Map<String,String> platform_settings) { this.key = key; this.key1 = key1; this.platform_settings = platform_settings; } //for JPA public Share() {} public String getKey() { return key; } public String getKey1() { return key1; } public Map<String,String> getPlatform_settings() { return platform_settings; } }

Para cada solicitud que haga, tendré que crear una clase que defina todas sus variables dentro. ¿Es esta la única manera de hacer esto?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Debe tener la dependencia de Jackson para la conversión de json a objeto java. Pero Spring lo proporciona de forma predeterminada, por lo que no tiene que agregarlo explícitamente.

No necesita una entidad JPA. Esto es necesario solo cuando desea almacenar los datos recibidos en la base de datos.
Solo para recibir la solicitud, no tiene que crear una clase pojo separada. Mira este código

 @PostMapping("/json") public JSONObject getGeneric(@RequestBody String stringToParse){ JSONParser parser = new JSONParser(); JSONObject json = null; try { json = (JSONObject) parser.parse(stringToParse); } catch (ParseException e) { e.printStackTrace(); } return json; }

Como puede ver aquí, toma una cadena como una solicitud y la convierte en un JSONObject genérico. Entonces, básicamente, puede pasar cualquier json a este punto final.

about 4 years ago · Santiago Trujillo Relatório

0

Puede usar la clase ObjectMapper, tiene métodos como convertValue y realValue.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda