반응형
Jackson Json: 어레이를 Json Node 및 Object Node로 변환하는 방법
지정된 직원 및 회사 클래스
Company
{
String companyName;
}
Employee
{
String employeeName;
}
그리고 내 코드는 다음과 같다.
List<Employee> e = new ArrayList<Employee>();
.....
.....
이런 결과가 나왔으면 좋겠다.
{
"company":{
"companyName":"cName",
"Employee":[
{"employeeName":"myName1"},
{"employeeName":"myName2"},
{"employeeName":"myName3"}
]
}
}
간단한 질문입니다만, 조금 혼란스러운 부분이 있습니다만…특히 Gson And Json...
다른 도서관은 제안하지 말아주세요.이 도서관이 작동하기 위해서는 필수가 필요합니다.그리고 어떤 상황 때문에 이 수업은 내가 원한게 아니야.
Company
{
String companyName;
List<Employee> employees;
}
그래서 나는 그것을 수동으로 넣고 json 문자열로 일련화해야 한다.
편집: @Sotirios Delimanolis 클래스는 클래스 간의 관계를 설계하는 올바른 방법이라고 선언했습니다.하지만, 그건 내가 원한게 아니야.
@hsluo의 답변은 @Sotirios Delimanolis가 말한 것과 같습니다.이 질문을 완벽하게 충족시키세요.
그리고 해시맵을 사용하는 다른 방법을 찾았습니다.
HashMap k = new HashMap();
List<employee> y = new ArrayList<employee>();
y......
k.put("records", y);
k.put("total", total);
@Responbody로 돌아가면 @hsluo가 응답한 것과 완전히 같은 결과가 됩니다.
그리고 @Sotirios Delimanolis, @hslo에게 도움을 주셔서 감사합니다.
ObjectMapper mapper = new ObjectMapper();
List<Employee> e = new ArrayList<Employee>();
ArrayNode array = mapper.valueToTree(e);
ObjectNode companyNode = mapper.valueToTree(company);
companyNode.putArray("Employee").addAll(array);
JsonNode result = mapper.createObjectNode().set("company", companyNode);
List<String> yourList = new ArrayList<>();
((ObjectNode) someNode).set("listname", this.objectMapper.valueToTree(yourList));
잭슨을 쓰시면 됩니다.ObjectNode
의put
그리고.putArray
맘에 들다
import com.fasterxml.jackson.databind.node.ObjectNode;
ArrayList<ObjectNode> employee = new ArrayList();
for(int i = 1; i < 4; i++){
ObjectNode em = Json.newObject();
em.put("companyName", "cName" + i);
employee.add(em);
}
ObjectNode company = Json.newObject();
company.put("companyName", "cName");
company.putArray("employee").addAll(employee);
return Json.newObject().put("company", company);
PoJO를 작성하기만 하면 됩니다.List<Employee>
class Employees {
@JsonProperty("Employee")
private List<Employee> employees;
public List<Employee> getEmployees() {
return employees;
}
public void setEmployees(List<Employee> employees) {
this.employees = employees;
}
}
에 연재합니다.ObjectNode
.
Employees e = new Employees();
List<Employee> employees = new ArrayList<Employee>();
e.setEmployees(employees);
ObjectNode objectNode = mapper.valueToTree(e);
JsonNode result = new ObjectMapper().readTree(e.toString());
언급URL : https://stackoverflow.com/questions/22978025/jackson-json-how-to-convert-array-to-jsonnode-and-objectnode
반응형
'programing' 카테고리의 다른 글
swagger api에서 기본 오류 컨트롤러를 사용하지 않음 (0) | 2023.03.17 |
---|---|
Angular 유닛 테스트에 서비스를 주입할 때 알 수 없는 공급자가 발생하는 오류 (0) | 2023.03.17 |
반응 개발 도구가 Chrome 브라우저에서 로드되지 않음 (0) | 2023.03.17 |
JSON 만드는 법특정 유형을 시리얼화할 때 ToString()을 호출하는 Net serializer? (0) | 2023.03.17 |
PyMongo upsert가 "upsert는 bool의 인스턴스여야 합니다" 오류를 발생시킵니다. (0) | 2023.03.17 |