Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1K
Views
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 answers
Answer question

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 Report

0

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

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!