一尘不染

Jackson Json:如何将数组转换为JsonNode和ObjectNode?

json

给定员工和公司等级

Company
{
    String companyName;
}

Employee
{
    String employeeName;
}

和我的代码如下

List<Employee> e = new ArrayList<Employee>();
.....
.....

我希望我能得到这样的结果

{
    "company":{ 
                "companyName":"cName",
                "Employee":[
                    {"employeeName":"myName1"},
                    {"employeeName":"myName2"},
                    {"employeeName":"myName3"}
                ]
              }
}

这是一个简单的问题,但是我有些困惑。…尤其是Gson和Json…。

请不要提出其他图书馆,我 强制NEED 这个库的工作。而且由于某些情况,我 想要这个课。

Company
{
    String companyName;
    List<Employee> employees;
}

因此,我需要 手动 将其序列化为json字符串。

编辑: @Sotirios Delimanolis声明的类是设计类之间关系的正确方法。但是,那不是我想要的。

@hsluo的答案是正确的!和@Sotirios Delimanolis提到的一样。完全解决这个问题。

我确实找到了另一种使用Hashmap的方法

HashMap k = new HashMap();
List<employee> y = new ArrayList<employee>();
y......
k.put("records", y);
k.put("total", total);

然后返回到@Responbody,结果与@hsluo回答完全相同。

并感谢@Sotirios Delimanolis,@ hsluo来帮助我。


阅读 919

收藏
2020-07-27

共1个答案

一尘不染

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);
2020-07-27