gpt4 book ai didi

java - 如何使用 GSON 命名 JSON 对象数组?

转载 作者:行者123 更新时间:2023-11-30 08:14:57 25 4
gpt4 key购买 nike

我正在使用 gson 库和 Mustach.js 模板引擎。我正在将产品集合传递到 jsp 页面。

现在我使用以下代码:

Collection<Product> products = productDAO.findAll();
Gson gson = new Gson();
JsonElement element = gson.toJsonTree(products,
new TypeToken<Collection<Product>>() {
}.getType());
JsonArray jsonArray = element.getAsJsonArray();
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
PrintWriter writer = response.getWriter();
writer.print(jsonArray);

它生成以下 json 输出:

[{"name":"Ut Nisi A PC","price":1133.43,"storeId":1,"id":2},
{"name":"Ipsum Dolor Sit Company","price":967.45,"storeId":1,"id":3},
{"name":"Ligula Limited","price":156.66,"storeId":1,"id":100}]

我想要的是命名一个数组:

 {
"products":
[{"name":"Ut Nisi A PC","price":1133.43,"storeId":1,"id":2},
{"name":"Ipsum Dolor Sit Company","price":967.45,"storeId":1,"id":3},
{"name":"Ligula Limited","price":156.66,"storeId":1,"id":100}]}

那么在 Mustache.js 模板的 jsp 中,我可以像这样引用数组:

   <div id="container"></div> 

<script id="products-template" type="text/mustache-template">
{{#products}}
<li>{{name}},{{price}}</li>
{{/products}}
</script>
$.ajax({
type : 'GET',
dataType : 'json',
url : 'product/upload_products',
success : function(products) {
var template = $('#products-template').html();
var info = Mustache.render(template, products);
$('#container').html(info);
}
})
</script>

如何使用 GSON 库实现这样的输出?

最佳答案

只需创建一个新的JsonObject 并添加一个字段

JsonObject object = new JsonObject();
object.add("products", jsonArray);

然后将该对象写入响应。

关于java - 如何使用 GSON 命名 JSON 对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29214225/

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