我有一个JSON对象,我正在尝试从Jackson API对象映射器读取。
{
"ddt_id":"605",
"ddt_batch_code":"5769005b-e8f0-4ae8-8971-1c59ac1f02fd",
"keyword":"ADP",
"keyword_operation":"and",
"keyword_extract_match":"F",
"search_in":"name",
"filter_type":"entity,others",
"category":"2,3,5",
"gender":"",
"date_year":"",
"date_month":"",
"date_day":"",
"country":"",
"search_filter_uuid":"570bd722-315c-40b3-b2d6-4522ac1f02fd",
"ddt_qsk_question":"0",
"search_for":"all",
"search_category":"2,3,5",
"search_includes_name":"T",
"search_includes_profile_notes":"F",
"search_for_person":"F",
"search_for_entity":"T",
"search_for_others":"T",
"search_from_module":"DDMT.V.2.20",
"client_id":667,
"ip_address":"52.23.94.13",
"search_requester_id":false,
"search_requester_name":false,
"batch_id":"5769005b-e8f0-4ae8-8971-1c59ac1f02fd",
"person_query_index":4,
"company_query_index":4,
"is_ongoing":1
}
我用来在对象中读取此 JSON 的类是:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.UUID;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class SswltSearchParams {
@JsonProperty("batch_id")
private UUID batchId;
@JsonProperty("country")
private String country;
@JsonProperty("criteria_id")
private String id;
@JsonProperty("date_day")
private Integer day;
@JsonProperty("date_month")
private Integer month;
@JsonProperty("date_year")
private Integer year;
@JsonProperty("gender")
private String gender;
@JsonProperty("keyword")
private String keyword;
@JsonProperty("keyword_exact_match")
private String keywordExactMatch;
@JsonProperty("keyword_operation")
private String keywordOperation;
@JsonProperty("search_category")
private String searchCategory;
@JsonProperty("search_for")
private String searchFor;
@JsonProperty("search_for_anti_corruption")
private String searchForAntiCorruption;
@JsonProperty("search_for_entity")
private String searchForEntity;
@JsonProperty("search_for_others")
private String searchForOthers;
@JsonProperty("search_for_person")
private String searchForPerson;
@JsonProperty("search_for_watchlist")
private String searchForWatchlist;
@JsonProperty("search_includes_name")
private String searchIncludesName;
@JsonProperty("search_includes_profile_notes")
private String searchIncludesProfileNotes;
@JsonProperty("update_only")
private String updateOnly;
// getters and setters
}
当我尝试将此 JSON 放在 Onject 中时,我没有收到任何错误,但我得到了 NULL 值。
try {
SswltMigrationCollection sswltSearchParams = mapper.readValue(searchCriteria.getScrCriteria(), SswltSearchParams.class);
} catch (IOException e) {
return null;
}
为什么我把这个sswltSearchParams作为null?请帮忙。
您的 JSON 可以解析为SswltSearchParams
实例,没有任何问题。以下代码工作正常:
String json = "{"ddt_id":"605","ddt_batch_code":"5769005b-e8f0-4ae8-8971-1c59ac1f02fd","keyword":"ADP","keyword_operation":"and","keyword_extract_match":"F","search_in":"name","filter_type":"entity,others","category":"2,3,5","gender":"","date_year":"","date_month":"","date_day":"","country":"","search_filter_uuid":"570bd722-315c-40b3-b2d6-4522ac1f02fd","ddt_qsk_question":"0","search_for":"all","search_category":"2,3,5","search_includes_name":"T","search_includes_profile_notes":"F","search_for_person":"F","search_for_entity":"T","search_for_others":"T","search_from_module":"DDMT.V.2.20","client_id":667,"ip_address":"52.23.94.13","search_requester_id":false,"search_requester_name":false,"batch_id":"5769005b-e8f0-4ae8-8971-1c59ac1f02fd","person_query_index":4,"company_query_index":4,"is_ongoing":1}";
ObjectMapper mapper = new ObjectMapper();
SswltSearchParams sswltSearchParams = mapper.readValue(json, SswltSearchParams.class);
不知道为什么SswltMigrationCollection
课开始发挥作用。