@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Items {
/**
*
*/
@JsonProperty("items")
private List<Item> items = new ArrayList<Item>();
private Map<String, Object> additionalProperties =
new HashMap<String, Object>();
/**
*
* @return
* The items
*/
@JsonProperty("items")
public List<item> getItems() {
return items;
}
/**
*
* @param items
* The items
*/
@JsonProperty("items")
public void setitems(List<Item> items) {
this.items = items;
}
@JsonAnyGetter
@JsonUnwrapped
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
{ "items": [
{...}],
"additionalProperties": { } // I expect this to be removed.
}
知道我做错了什么吗?如果重要的话,我将使用Jackson-core 2.1.1。
您需要在类级别上添加它@jsonInclude(include.non_empty)
下面的代码对我来说很好用
public static void main(String[] args) throws JsonGenerationException, JsonMappingException, IOException {
String [] characteristics = new String[]{};
Employee emp = new Employee("John", "20", "Male", characteristics);
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_EMPTY);
mapper.writeValue(System.out, emp);
}
class Employee {
String name;
String age;
String gender;
String [] characteristics;
//setters and getters
}
输出:{“姓名”:“John”,“年龄”:“20”,“性别”:“Male”}
问题内容: 在成功提交用户详细信息时,我从客户端获得了JSON。 由于未更新JSON中的某些元素,因此可以跳过。 在Go服务器端,我定义了一个等效的结构。 服务器成功将JSON字节编组到结构中。 但是对于未从客户端接收到的字段,默认情况下取消对字符串的硬编码解组为nil,对字符串数组解压缩为空数组。 例如,如果我获取json , 则不希望由元帅将其转换为。 简单起见,我希望它是 如何完全忽略该字段
问题内容: 我有一些必须序列化为JSON的数据。我正在使用JSON.NET。我的代码结构与此类似: 问题是,我的JSON输出需要具有ON OR 或ON- 取决于所使用的字段(即不为null)。默认情况下,我的JSON如下所示: 我知道我可以使用,但这给了我如下所示的JSON: 我需要的是: 有没有简单的方法可以做到这一点? 问题答案: 是的,您需要使用。 但是由于结构是值类型,因此您需要将Fiel
我的应用程序中有一个接受日志的控制器。当我发送一个空的json对象(“{}”)或有效请求,但有一个或多个空字段时,它会自动反序列化为一个空的LogDTO对象或一个字段设置为0(对于数字字段)的LogDTO。我想拒绝字段为空的请求。 我的控制器: LogDTO对象: 我也尝试在我的应用程序属性中设置“spring.jackson.default-属性-包含=非默认”,但它一直将字段设置为“0”。有什
如果包含一个与之匹配的值,则一切正常。 从返回 如果片段不存在,AbstractStandardFragmentInsertionTagProcessor#ComputeFragment似乎总是失败。 我对Thymeleaf很陌生,所以我可能错过了一些相当基本的东西。
我有一个问题。 然后在第二类中,即使我没有使用第二个字段,它仍然被添加为NULL。 我怎样才能避免这种情况呢?
我有这个Pojo: 这是我的结果集映射器: 如何从数据库中少取一列。例如,在一些查询中,我只获取tagUuid和name,而不获取其他字段。但是如果我这样做,我会得到一个例外:org.skife.jdbi.v2.exceptions。ResultSetException:尝试遍历结果集时引发异常。我试图创建一个没有其他参数的附加标记构造函数。 这是我尝试运行的查询: