programing

Jackson Json: 어레이를 Json Node 및 Object Node로 변환하는 방법

abcjava 2023. 3. 17. 19:29
반응형

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));

잭슨을 쓰시면 됩니다.ObjectNodeput그리고.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

반응형