gpt4 book ai didi

java - 将动态 ArrayList 转换为 Json

转载 作者:行者123 更新时间:2023-11-30 05:50:09 25 4
gpt4 key购买 nike

我想将数组列表转换为特定格式的 json 字符串。我在数组列表中获取所有用户的电子邮件,并希望将其转换为以下格式的 JSON。

 [
{"email":"abc@gmail.com"},
{"email":"xyz@gmail.com"}
]

我的 Controller Action 是

 public static Result apiCustomers(){
List<Customer> customerList = Model.coll(Customer.class).find().toArray();
List<String> emails = new ArrayList<String>();

for(Customer c : customerList){
emails.add(c.email);
}

//ObjectNode result = Json.newObject();
//result.put("emails", Json.toJson(emails));
return ok();
}

如何将邮件列表转换成上面的json格式?

提前致谢

最佳答案

为什么要使用另一个 JSON ser/des 库? Play 有一个内置的(一个围绕 jackson 的包装器——速度非常快)。

从您的代码开始:

public static Result apiCustomers(){
List<Customer> customerList = Model.coll(Customer.class).find().toArray();
List<String> emails = new ArrayList<String>();

for(Customer c : customerList){
emails.add(c.email);
}

return ok(Json.toJson(emails));
}

这使用了一些默认值,但应该足够了。

或手动:

public static Result apiCustomers(){
ArrayNode arrayNode = new ArrayNode(JsonNodeFactory.instance);

List<Customer> customerList = Model.coll(Customer.class).find().toArray();

for(Customer c : customerList){
ObjectNode mail = Json.newObject();
mail.put("email", c.email);
arrayNode.add(mail);
}

return ok(arrayNode);
}

不需要 Gson。

关于java - 将动态 ArrayList 转换为 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14524360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com