У меня проблема с получением одного из полей во вложенном массиве.
Сначала я пытаюсь перебрать root массив моего json вот так -
for(SearchHit h : hits){
String source = h.getSourceAsString().replace("null","\"\"");
TestResponse svcResp = mapper.readValue(source, TestResponse.class);
dataResp.add(svcResp);
}
Теперь исходный код json будет выглядеть так -
{
"name": [
{
"family": "Doe",
"given": "Jon",
"middle": "Smith",
"use": "Commercial"
}
]
}
, а мой pojo будет выглядеть так -
private String fstNm;
List<Map<String,Object>> name=null;
private List<Map<String,Object>> name;
public String getFstNm() { return fstNm; }
public void setFstNm(List<Map<String, Object>> hits) {
name = (List) hits.get(0).get("name");
this.fstNm= (String) name.get(0).get("given");
}
Мой ожидаемый результат -
{
"fstNm":"Jon"
}
Но я получаю фактический результат -
{
"fstNm":null,
"name": [
{
"family": "Doe",
"given": "Jon",
"middle": "Smith",
"use": "Commercial"
}
]
}
Как мне заставить работать ожидаемый результат?
Обновить публикацию всего моего pojo -
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;
import java.util.Map;
import java.util.List;
@AllArgsConstructor
@Setter
@Getter
public class TestResponse {
@JsonProperty("dummyID")
@JsonAlias("dummyID")
private String dummyID;
private String fstNm;
private List<Map<String, Object>> name;
public String getFstNm() {
return fstNm;
}
public void setFstNm(String fstNm) {
this.fstNm=fstNm;
}
public List<Map<String, Object>> getName() {
return name;
}
public void setName(List<Map<String, Object>> name) {
this.name = name;
this.fstNm= (String) name.get(0).get("given");
}
public String getdummyId() {
return dummyId;
}
public void setdummyId(String dummyId) {
this.dummyId = dummyId;
}
}