2014-04-04 74 views
0

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

此对象的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并以我们的快乐方式离开会很容易。

+0

看看http://jackson.codehaus.org/ – sp00m

+0

^他说他已经在使用它了。 (或者你想让他在那里读些什么?) – Incognito

+0

jackson,jsonlib,gson等......都会帮助你做到这一点。其他方法,如果你不期望复杂的类型,就是通过反射手工翻阅一个快速的类,并创建字符串。 – haylem

回答

0

那么如果你不想“创建另一个JavabeanMap<String, String>是一个选项。

你可以只是做

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

或尝试使用@JsonProperty

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

谢谢我现在要去看看这两种方法。 – RachelC

+1

我去了HashMap,因为我必须格式化值,因为我正在修改现有的系统,我不想编辑其他程序员对象。 – RachelC

0

我已经做了某事像,与从javax.xml.bind.annotation注释实际使用杰克逊。我使用wink库将JAXB注释的对象编组/解组为JSON,但它主要针对REST Web服务。我想你的杰克逊应该很好。

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