public class user {
private String planId;
private String eid;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private Collection<String> userIds;
}
我有一个像上面一样的pojo
用于创建json请求对象的代码如下:
public UserCollection getUserCollection(final user args) {
Map<String, String> headersMap = new HashMap<>();
ObjectMapper jacksonMapper = new ObjectMapper();
jacksonMapper.disable(MapperFeature.USE_ANNOTATIONS); // this line is creating the userIds field to reflect
//By any code we can remove the userId field from the args object
String responseBody = null;
String responseStatus = null;
String jsonRequestBody = jacksonMapper.writeValueAsString(args);
}
我只是想通过不删除任何上述代码从args中删除userIds。
提前谢谢。
我不知道如何在不删除注释处理代码的情况下解决这个问题,您可能应该添加一个自定义序列化程序。你可以在这里进一步了解这个话题。
public class HelloWorld {
public static void main(String[] args) throws JsonProcessingException {
User myItem = new User("planId", "eId", List.of("1", "2"));
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addSerializer(User.class, new UserSerializer());
mapper.registerModule(module);
String serialized = mapper.writeValueAsString(myItem);
}
@Data
@AllArgsConstructor
public static class User {
private String planId;
private String eId;
private Collection<String> userIds;
}
public static class UserSerializer extends StdSerializer<User> {
public UserSerializer() {
this(null);
}
public UserSerializer(Class<User> t) {
super(t);
}
@Override
public void serialize(User value, JsonGenerator gen, SerializerProvider provider) throws IOException{
gen.writeStartObject();
gen.writeStringField("planId", value.planId);
gen.writeStringField("eId", value.eId);
gen.writeEndObject();
}
}
}
如果必须在没有注释的情况下使用它,并且无法添加自定义序列化程序,那么应该将用户类映射到没有相关字段的更具体的类中,然后序列化该类。
问题内容: 从字典中删除键时,我使用: 有没有一种方法可以做到这一点? 问题答案: 要删除键而不管它是否在字典中,请使用以下两个参数的形式: 如果典中存在,则返回,None否则返回。如果第二个参数未指定(即)并且key不存在,则引发a。 要删除肯定存在的密钥,你还可以使用 如果关键字在字典中不存在,则会引发 。
从字典中删除键时,我使用: 有没有一个简单的方法可以做到这一点?
问题内容: 我有绳子。 如何在离开字符串的同时从字符串中删除? 问题答案: 对于所有要丢弃的事件,请使用: PS:replace函数返回一个新字符串,并使原始字符串保持不变,因此在replace()调用之后使用该函数的返回值。
我有一个字符串。 在保留的同时,如何从字符串中删除?
问题内容: 我想删除特殊字符,例如: 使用Java从String中获取。 问题答案: 这取决于你定义为特殊字符的内容,但是请尝试: 请注意,该^字符不能是列表中的第一个字符,因为你要么必须对其进行转义,否则将意味着“除这些字符外的任何字符”。 另一个注意事项:-字符必须是列表中的第一个或最后一个,否则你必须对其进行转义,否则它将定义一个范围(例如,表示“ 范围内的所有字符” )。 所以,为了保持一
问题内容: 我想从我的字符串中删除以下所有字符 “> [],-” 目前我正在这样做。但必须有一个更有效的方法 问题答案: 使用描述要替换的所有字符的正则表达式,以及替换与该正则表达式匹配的所有内容的方法: (编辑:实际上,我认为不应该转义。而且我忘记了将反斜杠加倍,因为它们会被解释两次:一次是由Java编译器,一次是由正则表达式引擎。)