Jackson Json: how to convert array to JsonNode and ObjectNode?

后端 未结 5 621
长发绾君心
长发绾君心 2020-12-14 00:56

Given Employee and company class

Company
{
    String companyName;
}

Employee
{
    String employeeName;
}

and my code like the following<

相关标签:
5条回答
  • 2020-12-14 01:26
    JsonNode result = new ObjectMapper().readTree(e.toString());
    
    0 讨论(0)
  • 2020-12-14 01:35
    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);
    
    0 讨论(0)
  • 2020-12-14 01:43
    List<String> yourList = new ArrayList<>();
    ((ObjectNode) someNode).set("listname", this.objectMapper.valueToTree(yourList));
    
    0 讨论(0)
  • 2020-12-14 01:47

    You can use jackson ObjectNode's put and putArray like

    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);
    
    0 讨论(0)
  • 2020-12-14 01:50

    You can just create a POJO that contains a 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;
        }
    }
    

    and serialize it to an ObjectNode.

    Employees e = new Employees();
    List<Employee> employees = new ArrayList<Employee>();
    e.setEmployees(employees);
    ObjectNode objectNode = mapper.valueToTree(e);
    
    0 讨论(0)
提交回复
热议问题