【问题标题】:How to convert json string to java object, if json property name and java object property are different如果json属性名称和java对象属性不同,如何将json字符串转换为java对象
【发布时间】:2019-11-16 20:18:22
【问题描述】:

我有一个如下的 Json 字符串:

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

我想把上面的json字符串转换成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());

但 Emp 对象为所有字段返回空值。

你能帮我解决这个问题吗?

【问题讨论】:

标签: java json


【解决方案1】:

修复输入Json字符串后尝试

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

【讨论】:

    【解决方案2】:

    通过使用 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());
    

    【讨论】:

      猜你喜欢
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 2012-10-27
      • 1970-01-01
      • 2015-04-14
      • 2022-01-27
      • 1970-01-01
      相关资源
      最近更新 更多