gpt4 book ai didi

java - Google gson.toJson(List) 以字符串而不是数组形式返回响应

转载 作者:行者123 更新时间:2023-11-30 03:40:39 25 4
gpt4 key购买 nike

我正在尝试使用 JsonObject 将 java 对象转换为 String。以下是我用来添加属性的代码:

    JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("id", favoriteWrapper.getId());
jsonObject.addProperty("menuitemid", favoriteWrapper.getMenuItemId());
jsonObject.addProperty("displayname", favoriteWrapper.getDisplayName());
jsonObject.addProperty("description", favoriteWrapper.getDescription());
jsonObject.addProperty("alias", favoriteWrapper.getAlias());
Gson gson = new Gson();
jsonObject.addProperty("condiments", gson.toJson(favoriteWrapper.getCondiments()));

这里最后一个属性调味品是长值列表,以下是检索到的响应:

[
{
"id": 1,
"menuitemid": 1,
"displayname": "Ham",
"description": "Ham",
"alias": "Ham",
"condiments": "[1,8,34,2,6]"
}
]

预期输出如下,对于调味品有所不同:

   [
{
"id": 1,
"menuitemid": 1,
"displayname": "Ham",
"description": "Ham",
"alias": "Ham",
"condiments": [1,8,34,2,6]
}
]

我应该怎么做才能将调味品获取为 JSON 数组而不是 String ?

最佳答案

我找到了问题的答案。我使用 JsonArray 和 JsonPrimitive 来实现所需的响应:

      JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("id", favoriteWrapper.getId());
jsonObject.addProperty("menuitemid", favoriteWrapper.getMenuItemId());
jsonObject.addProperty("displayname", favoriteWrapper.getDisplayName());
jsonObject.addProperty("description", favoriteWrapper.getDescription());
jsonObject.addProperty("alias", favoriteWrapper.getAlias());

JsonArray condiments = new JsonArray();
for (Long condimentId : favoriteWrapper.getCondiments()) {
condiments.add(new JsonPrimitive(condimentId));
}

jsonObject.add("condiments", condiments);
jsonObjects.add(jsonObject);

关于java - Google gson.toJson(List) 以字符串而不是数组形式返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26880364/

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