java - convert json string into POJO containing @key -


i have json string shown below.

{     "input_index": 0,     "candidate_index": 0,     "delivery_line_1": "5461 s red cliff dr",     "last_line": "salt lake city ut 84123-5955",     "delivery_point_barcode": "841235955990" } 

i want convert pojo of class shown below.

public class candidate {      @key("input_index")     private int inputindex;      @key("candidate_index")     private int candidateindex;      @key("addressee")     private string addressee;      @key("delivery_line_1")     private string deliveryline1;      @key("delivery_line_2")     private string deliveryline2;      @key("last_line")     private string lastline;      @key("delivery_point_barcode")     private string deliverypointbarcode; } 

i trying convert json pojo using jackson shown below.

objectmapper objectmapper = new objectmapper();  objectmapper.configure(deserializationfeature.fail_on_unknown_properties, false);  candidate candidate = objectmapper.readvalue(jsonstring,candidate.class); 

when run code getting null values in pojo because jackson looking attribute name in json string instead of name given in @key. how tell jackson map values based on @key?

i used @jsonproperty before , had no issue converting pojo. candidate class provided third party , using @key(com.google.api.client.util.key) annotation attributes. so, can't change class.

use maven dep :

<dependency>     <groupid>com.google.http-client</groupid>     <artifactid>google-http-client-jackson</artifactid>     <version>1.15.0-rc</version> </dependency> 

and convert :

candidate candidate = jacksonfactory.getdefaultinstance().fromstring(output,candidate.class); 

Comments