@JsonProperty不工作(Weblogic 12.2.1和Java 8)

@JsonProperty不工作(Weblogic 12.2.1和Java 8),java,json,spring,weblogic12c,Java,Json,Spring,Weblogic12c,我遇到了一个问题,JsonProperty注释无法更改变量的名称。下面是示例应用程序 我正在将以下JSON转换为POJO,然后将其转换回JSON String json = "{\"response\": {\"companyname\": \"ABC Company\",\"issn\": [{\"format\": \"paper\",\"val\": \"0018-9480\"},{\"format\": \"online\",\"val\": \"1557-9670\"}]},\"te

我遇到了一个问题,JsonProperty注释无法更改变量的名称。下面是示例应用程序

我正在将以下JSON转换为POJO,然后将其转换回JSON

String json = "{\"response\": {\"companyname\": \"ABC Company\",\"issn\": [{\"format\": \"paper\",\"val\": \"0018-9480\"},{\"format\": \"online\",\"val\": \"1557-9670\"}]},\"teststring\":\"testing me out\"}";

    ObjectMapper mapper = new ObjectMapper();
    WrapperObj record = mapper.readValue(json, WrapperObj.class);
    ObjectWriter writer = mapper.writer();
    writer.writeValue(response.getOutputStream(), record);
我希望'issn'对象中的'val'显示为'value',因为我在'val'字段上应用了@JsonProperty(“value”)。 以下是输出json(为简洁起见进行了编辑)

如果要创建一个Issn对象并执行record.getResponse.setIssn(setMyObject),json输出将显示正确的JsonProperty标记。我链接到一个样本项目,将显示这一点,如果有人感兴趣。(git链接:)

更新
似乎因为我用
@JsonProperty(“value”)
注释了我的POJO字段,所以传入的JSON字段也应该称为“value”。所有这些都是在输出中看到“val”的时候,因为我有一个catch-All列表字段,所有字段都将进入该字段。我删除了JsonAnyGetter字段,现在我的“val”字段没有显示。

@Codo说检查您的导入,在我的项目中,很少从Jaxson reader/writer的不同提供者导入混合库时,我也遇到同样的问题
检查一下,我相信你会找到你的错误

确保在项目中添加了jackson数据绑定依赖项/jar-

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.0</version>
</dependency>

com.fasterxml.jackson.core
杰克逊数据绑定
2.8.0

好的,显然在过去的某个时候,Jackson可能支持一个名称用于序列化,另一个名称用于反序列化。似乎不再是了。当我用@JsonProperty(“value”)注释getter(getVal())时,它希望传入的json负载也有“value”(而不是“val”),即使我有一个setVal()方法。

我快速完成了一个单元测试,结果与预期一样,
val
被写成
value
。您有序列化的代码示例吗?作为补充说明,您不需要注释getter和字段。作为@Leon,我无法复制。您可能导入了错误的
JsonProperty
注释类,或者您可能使用了错误的JSON序列化程序,即不关心
JsonProperty
注释的序列化程序。提供更多的代码,特别是th
Isbn
类的导入和JSON序列化程序的配置。@codo此代码用于在Java 1.6和Weblogic 10环境中正常工作。现在,我正在尝试将相同的代码迁移到Java8和WebLogic12。Jackson导入为import
com.fasterxml.Jackson.annotation.JsonProperty我将在一个单独的java项目中尝试一个单元测试用例,但我确信它会很好地工作。将其转换为JSON的代码类似于
ObjectMapper ObjectMapper=new ObjectMapper();ObjectWriter ObjectWriter=objectMapper.writerWithView(HtmlView.class);objectWriter.writeValueAsString(record)
您可以附加HtmlView的源代码吗?
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.0</version>
</dependency>