当前位置: 首页 > 知识库问答 >
问题:

Googlegson.toJson(List)以字符串而不是数组的形式返回响应

濮丁雷
2023-03-14

我正在尝试使用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()));

这里最后一个属性条件是Long值的列表,下面是检索到的响应:

[
    {
        "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数组而不是字符串形式的调味品?

共有1个答案

鲁炳
2023-03-14

我找到了问题的答案。我使用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);
 类似资料:
  • 我正在学习如何使用Spring靴和胸腺嘧啶。我有一个问题,我在表单列表中提供一个特定对象的列表到一个Thymeleaf页面。当用户选择值并发布结果时,结果是所选对象的字符串,并且与我想要存储值的对象不兼容。 这可能听起来像一口,所以下面是代码。 输入:一个类将一组成分传递给表单,这个类在一个类成分列表中传递给表单(过滤对此无关紧要--插入一个列表作为model属性的值,键是一种成分类型) Thym

  • 我验证了JSON是好的。当我逐步通过调试器并观察方法getString(见下文)时,程序得到的是一个JSONObject,而不是一个String。你知道为什么会发生这种情况以及如何纠正它吗?这是在.get()调用之后显示的对象值: {“access_level”:“readonly”,“地址”:“9997-dlsrir-b8aky4@mg.lmsnet.com”,“名称”:“密歇根大道北纬123号

  • Spring WebFlux的新手,尝试在一个endpoint中返回字符串数组,出于某种原因,它返回了JSON数组的一个串联字符串istead。 用一些类包装它可以解决问题,但想知道如何实际返回字符串数组?返回例如数组

  • 以下endpoint以字符串形式返回用户名。 我如何构造它以返回一个json对象,该对象包含一个键,该键的值为该字符串(例如,{“user”:“joeuser”})?

  • 问题内容: 在Python中,我可以执行以下操作: 有对象列表时,有什么简单的方法可以做到这一点? 还是我必须求助于for循环? 问题答案: 您可以改用列表推导或生成器表达式:

  • 问题内容: 我在MySQL数据库中有一个表字段: 因此,我使用以下查询将其调用到我的页面: 然后,为了处理结果,我要做: 现在,如果我这样做: 我得到一个字符串。 这不是整数吗? 问题答案: 当您使用PHP从MySQL数据库中选择数据时,数据类型将始终转换为字符串。您可以使用以下代码将其转换回整数: 或使用功能: