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
Converting a RequestBody json to an Object - Spring Boot

I am a begineer in java development but has previous experience on programming languages like PHP and Python. So little confused on how to proceed on spring boot with the development.

I am developing a rest API which has the following request

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

What I did

I created a RestController which accepts the http request and created a function for the resource

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

Question 1 : If it was any other programming language like PHP or Python, there will be helper function which will accept the json request and convert it to object which I can easily work on.

In python it is as simple as

import json
import requests

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

But in java, I will have to create a POJO class, or have jackson/JPA entity as dependency which will map the request to a Class (Which I should predefine with the requests).

Is there any better way I can do this? For every request I make, I will have to create a Class which the request can be mapped to and I will have to define the class

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;
    }

}

For every request I make, I will have to create a class defining all its variables inside. Is this the only way to do this?

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

You need to have Jackson dependecy for coversion of json to java object. But spring provides it by default, so you don't have to add it explicitly.

You don't need a JPA Entity. This is needed only when you want to store the recieved data into database.
Just to recieve the request you don't have to create a separate pojo class. Look at this code

@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;
}   

As you can see here it takes a string as a request and converts it into a generic JSONObject. So basically you can pass any json to this endpoint.

about 4 years ago · Santiago Trujillo Report

0

You CanUse ObjectMapper class it has methods like convertValue and 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!