2011-12-25 83 views
0

我的代码基本上可以读取添加到json中的属性,如'name'和'value'遵循JSON {"operation":"write-attribute","address":[{"subsystem":"web"},{"connector":"http"}],"name":"socket-binding","value":"jndi"} 由于方法是通用的,我也只是依靠硬编码的名称和值 - 其他JSON字符串可能包含应“抓住”其他属性@JsonAny(S | G} etter从1.7.4更改为1.9.3?

@JsonAnySetter 
public void addAdditionalProperty(String key, Object value) { 
    if (additionalProperties == null) 
     additionalProperties = new HashMap<String, Object>(); 
    additionalProperties.put(key,value); 
} 

@SuppressWarnings("unused") 
public void setAdditionalProperties(Map<String, Object> additionalProperties) { 
    this.additionalProperties = additionalProperties; 
} 

@JsonAnyGetter 
public Map<String,Object> getAdditionalProperties() { 
    return this.additionalProperties; 
} 

@JsonIgnore 
public String getName() { 
    return (String) getProperty("name"); 
} 

@JsonIgnore 
public String getValue() { 
    return (String) getProperty("value"); 
} 

此代码与杰克逊1.7效果很好。 4,但在1.9.3中没有设置附加属性时失败 我无法看到这是否是预期的更改,或者它是否回归

如果这是一个预期的变化 - 有谁知道如何“修复”我的代码再次工作?

的完整代码is here,测试is here(第一次测试,OperationSerDeserTest)

+0

什么是错误? – fge 2011-12-25 17:46:11

+0

如上所述:整个additionalProperties没有设置,而它们在1.7.4。 – 2011-12-25 17:50:13

+0

好的,我知道有一个运行时错误 – fge 2011-12-25 17:59:07

回答

1

听起来像是潜在的错误,我 - 找出最简单的方法是,要么送问题的用户列表,或者提交吉拉。我可以做后者,看看我能否看到会发生什么。

+1

看起来常规getter之间存在某种(内部)冲突,任何getter - Jira问题是[https://jira.codehaus.org/browse/JACKSON-744 ],看起来像一个迄今为止的错误。奇怪的单元测试没有抓住这一点。 – StaxMan 2011-12-26 18:09:45

相关问题