 <p><a href="https://github.com/google/gson" rel="nofollow">Google's gson library</a> doesn't require you to use annotations or constructors:</p> <pre><code>import com.google.gson.Gson; import java.util.Date; public class Test { public static void main(String[] args) { Gson gson = new Gson(); String toJson = gson.toJson(new Thing()); System.out.println(toJson); // prints {"appleType":"granny","date":"Apr 21, 2016 10:31:17 AM","numPies":6} Thing fromJson = gson.fromJson(toJson, Thing.class); System.out.println(fromJson); // prints com.mycompany.mavenproject1.Thing@506c589e } } class Thing { String appleType = "granny"; Date date = new Date(); int numPies = 6; } </code></pre> <p>Jackson may have similar features, but I don't know.</p>