为 JSON 创建临时 Java 对象

Create temporary Java object for JSON

本文关键字:Java 对象 JSON 创建      更新时间:2023-09-26

我想做的是动态创建一个临时对象,以便我可以将其转换为JSON并将其发送回JSP页面以供JavaScript使用。仅供参考,我正在使用Java Jackson库将Java对象转换为JSON。

这个对象的JavaBean类看起来像这样。

public class MonthlyAnalysisBean {
    private Date monthlyProcessDate;
    private Double activeInventory;
    private Double inactiveInventory;
    private Double excessInventory;
    /* Set... Get.... Bla bla methods */
}

我需要一个在 JSON 中看起来像这样的对象。

{
    "date": "2014-04-04",
    "Active": 100.00,
    "Inactive": 10.23,
    "Excess": 2.99
}

基本上,我只需要很好地重命名和格式化相同的字段。有没有办法在Java中做到这一点,而无需创建另一个JavaBean并创建新对象?

在 JavaScript 中,创建一个新对象,发送 JSON 并走上我们的快乐之路非常容易。

好吧,

如果你不想"创建另一个Javabean",Map<String, String>是一个选择。

你可以做

Map<String, String> map = new HashMap<String, String>();
map.put("date", monthlyAnalysisBean.getMonthlyProcessDate());
...

或者尝试实际使用杰克逊使用@JsonProperty

@JsonProperty("date")
public Date getMonthlyProcessDate() { 
   return monthlyProcessDate; 
}

我已经用javax.xml.bind.annotation的注释做了这样的工作。我使用wink库将JAXB注释的对象封送/解编成JSON,但它主要用于REST Web服务。我想你的杰克逊应该没问题。

@XmlAttribute(name = "date")
private Date monthlyProcessDate;