1. Jackson
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(obj);
String jsonString = "{\"name\":\"John\", \"age\":30}";
Person person = objectMapper.readValue(jsonString, Person.class);
2. Gson
Gson gson = new Gson();
String json = gson.toJson(obj);
String jsonString = "{\"name\":\"John\", \"age\":30}";
Person person = gson.fromJson(jsonString, Person.class);
3. JSON-lib
JSONObject json = JSONObject.fromObject(obj);
String jsonString = json.toString();
String jsonString = "{\"name\":\"John\", \"age\":30}";
JSONObject json = JSONObject.fromObject(jsonString);
Person person = (Person) JSONObject.toBean(json, Person.class);
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.0</version>
</dependency>