[英]to put an object in a ObjectNode of Jackson
我正在嘗試在Object
的ObjectNode
中設置 Object 並且我能夠做到這一點,但是在將其設置到 object 節點時遇到了問題。 null
屬性也即將到來,我嘗試使用 GSON 但隨后請求中出現了" \"
。
public class Testing4 {
public static void main(String[] args) throws JsonProcessingException {
ObjectNode request = null;
ObjectMapper mapper = new ObjectMapper();
request = mapper.createObjectNode();
RequestParam requestParam = new RequestParam();
requestParam.setCustomerName("sachin");
requestParam.setCustomerOrderNumber("12344556");
request.set("request",mapper.convertValue(requestParam, JsonNode.class));
request.put("FatherName","jithin");
String req = mapper.createObjectNode().set("request", request).toString();
System.out.println(req);
}
private static Comparator<? super String> kFirst() {
return (s1, s2) -> "k".equals(s1) ? -1 : "k".equals(s2) ? 1 : 0;
}
}
DTO class
public class RequestParam implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String orderDueDate;
private String originatingSystemOrderId;
private String objectId;
private String taskTypeId;
private String customerId;
private String customerName;
private String customerOrderNumber;
private Dataset dataset;
}
在這里我可以得到 o/p 但 o/p 包括null
分配以及我將如何刪除null
分配我現在得到的 o/p
{
"request": {
"request": {
"orderDueDate": null,
"originatingSystemOrderId": null,
"objectId": null,
"taskTypeId": null,
"customerId": null,
"customerName": "sachin",
"customerOrderNumber": "12344556",
"dataset": null
},
"FatherName": "jithin"
}
}
我想要的 o/p
{
"request": {
"request": {
"customerName": "sachin",
"customerOrderNumber": "12344556"
},
"FatherName": "jithin"
}
}
請幫忙,謝謝
如果@JsonInclude(Include.NON_NULL)
有效,則使用
@JsonInclude(JsonInclude.Include.NON_NULL)
(@JsonSerialize(include = Inclusion.NON_NULL)
不要使用它已棄用)@JsonInclude(JsonInclude.Include.NON_NULL) public class RequestParam 實現可序列化 {
private static final long serialVersionUID = 1L;
private String orderDueDate;
private String originatingSystemOrderId;
private String objectId;
private String taskTypeId;
private String customerId;
private String customerName;
private String customerOrderNumber;
private Dataset dataset;
}
@JsonInclude(Include.NON_NULL)
public class RequestParam implements Serializable {
private static final long serialVersionUID = 1L;
private String orderDueDate;
private String originatingSystemOrderId;
private String objectId;
private String taskTypeId;
private String customerId;
private String customerName;
private String customerOrderNumber;
private Dataset dataset;
}
需要添加import語句import com.fasterxml.jackson.annotation.JsonInclude;
在 DTO class 定義之前添加@JsonInclude(Include.NON_NULL)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.