简体   繁体   English

How to convert json string to java object, if json property name and java object property are different

[英]How to convert json string to java object, if json property name and java object property are different

I have one Json String like below:我有一个 Json 字符串,如下所示:

 String empJson= {"id":"13480","name":"test","salary":29292"}

I want to convert above json string into Java object.我想将上面的 json 字符串转换为 Java object。

Emp.Java Emp.Java

@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class Emp {
 @XmlElement(name="name")
 private String m_name;
 @XmlElement(name="id")
 private String m_id;
 @XmlElement(name="salary")
 private String m_salary;
 //setters and getters
}



 GsonBuilder gsonBuilder = new GsonBuilder();
    Gson gson = gsonBuilder.create();
    JsonElement jElement = gson.fromJson(empJson, JsonElement.class);
    System.out.println(jElement);
    Emp = gson.fromJson(jElement, Emp.class);
    System.out.println(" id : " + emp.getId());

But Emp object returning null values for all the fields.但是 Emp object 返回所有字段的 null 值。

Could you please help me on this.你能帮我解决这个问题吗?

Try after fixing input Json string修复输入 Json 字符串后尝试

 String empJson= {"id":"13480","name":"test","salary":"29292"}

By using ObjectMapper and JaxbAnnotationModule I have resolved my isssue.通过使用 ObjectMapper 和 JaxbAnnotationModule 我已经解决了我的问题。

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JaxbAnnotationModule());
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Emp emp = mapper.readValue(jsonObject.toString(), Emp.class);
System.out.println("EmpName: " + emp.getName());

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM