这是我的东西
public class TokenTO {
private String clientId;
private String clientSecret;
private String authCode;
private String authToken;
....
}
当我得到json
响应时,我看到
{"clientId":null,"clientSecret":null,"authCode":null,"authToken":"312301658396979836978200915715157679015:80bf41c2-bc97-492f-a65e-172bef9efb7c:922000000"}
我的JacksonContextResolver
看起来像
public JacksonContextResolver() {
objectMapper = new ObjectMapper()
.setSerializationInclusion(JsonSerialize.Inclusion.ALWAYS);
final AnnotationIntrospector annotationIntrospector = new JaxbAnnotationIntrospector();
objectMapper
.enable(DeserializationConfig.Feature.READ_ENUMS_USING_TO_STRING)
.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL)
.setDeserializationConfig(objectMapper.getDeserializationConfig().withAnnotationIntrospector(annotationIntrospector))
.setSerializationConfig(objectMapper.getSerializationConfig().withAnnotationIntrospector(annotationIntrospector));
}
<properties>
<jaxrs-api.version>3.0.8.Final</jaxrs-api.version>
<maven-war-plugin.version>2.4</maven-war-plugin.version>
<resteasy-jaxrs.version>3.0.9.Final</resteasy-jaxrs.version>
<jackson.version>1.9.13</jackson.version>
<jaxrs-api.version>3.0.8.Final</jaxrs-api.version>
</properties>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId>
<version>${jackson.version}</version>
</dependency>
问题
如何消除JSON
中的null
值?
由于我使用的是Java EE7
,所以我尝试使用JSON处理。
我所做的改变是
对于测试,我添加了
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.4</version>
<scope>test</scope>
</dependency>
public JsonObject getAuthToken(@Nonnull final TokenManager tokenManager) {
final String token = tokenManager.getAccessToken(clientId, clientSecret, authCode);
return Json.createObjectBuilder().add("authToken", token).build();
}
final JsonObject jsonReply = getJsonObjectFromResponse(response);
assertNotNull(jsonReply.getString("authToken"));
@Nonnull
protected JsonObject getJsonObjectFromResponse(@Nonnull final Response response) {
final JsonReader jsonReader = Json.createReader(new StringReader(response.readEntity(String.class)));
return jsonReader.readObject();
}
{"authToken":"165099393037221788471723459805657963846:8b0f2514-938f-4509-964f-ee073dbab4ed:238000000"}
问题内容: 我目前正在使用杰克逊2.1.4,并且在将对象转换为JSON字符串时忽略字段时遇到了一些麻烦。 这是我的类,它充当要转换的对象: 这是我如何转换它: 这是输出: 如何避免这些空值?我只想获取“订阅”目的所需的信息! 这正是我要查找的输出: 我还尝试了@JsonInclude(Include.NON_NULL)并将所有变量都设置为null,但是它也不起作用!感谢您的帮助! 问题答案: 您将
下面是我的类,它充当要转换的对象: 下面是我的转换方法: 输出如下: 下面正是我要查找的输出: 我还尝试了@jsonInclude(include.non_null),并将我的所有变量置为null,但也没有起作用!谢谢你们的帮助!
知道我做错了什么吗?如果重要的话,我将使用Jackson-core 2.1.1。
我试图使用Jackson注释来重新命名序列化过程中产生的一些json标签。所有注释都编译得很好,当我运行时,除了所有Jackson注释之外,Jackson序列化工作完全被忽略。即使像@jsonignore或@jsonproperty这样的基本命令对json响应也没有影响。构建路径中的库有: 下面是我需要序列化的一个类的代码示例:
在Spring MVC中,我需要将空字符串()视为。这是因为我发现,当我编辑一个表单字段(带有Angular的ng-model),该字段最初是,然后将其擦除为空白时,Angular将以空字符串的形式发送该bean属性。如果我不接触这样的null值,它将不会在JSON有效负载中发送,因此被视为null。
我正在用java中的jackson构建一个json体。它会像下面这样 基于不同的 REST URI,json 主体必须忽略某些字段或元素。如何使用杰克逊忽略上述 json 正文中的“学生”部分?当我忽略它时,我应该只能得到 但我得到它如下,这是不正确的- 我有两个带有getters和setters的类,一个作为主语,另一个作为学生。我尝试使用@JsonIgnore,但是它忽略了所有的URI,这是我