当前位置: 首页 > 面试题库 >

如何在JSON对象中转义引号?

壤驷喜
2023-03-14
问题内容

下面是我的制作方法,JSONObject然后打印出JSONString

我正在使用Google GSON。

private String generateData(ConcurrentMap<String, Map<Integer, Set<Integer>>> dataTable, int i) {

    JsonObject jsonObject = new JsonObject();

    Set<Integer> ap = dataTable.get("TEST1").get(i);
    Set<Integer> bp = dataTable.get("TEST2").get(i);

    jsonObject.addProperty("description", "test data");
    jsonObject.addProperty("ap", ap.toString());
    jsonObject.addProperty("bp", bp.toString());

    System.out.println(jsonObject.toString());

    return jsonObject.toString();
}

目前,如果我打印出, jsonObject.toString()那么它会像这样打印出来-

{"description":"test data","ap":"[0, 1100, 4, 1096]","bp":"[1101, 3, 6, 1098]"}

但这不是我所需要的。我想像下面这样打印出来,没有双引号apbp值。

{"description":"test data","ap":[0, 1100, 4, 1096],"bp":[1101, 3, 6, 1098]}

我不确定如何在JSONObject中转义引号?


问题答案:

你的问题是

jsonObject.addProperty("ap", ap.toString());

您正在添加一个属性,它是Java中的String表示形式Set。它与JSON无关(即使格式看起来相同)。

您将必须将其转换SetJsonElementJsonArray确实,但您不会看到)。

Gson某处创建对象

Gson gson = new Gson();

并将其用于将Set元素转换为JsonElement对象并将其添加到中JsonObject

jsonObject.add("ap", gson.toJsonTree(ap));
jsonObject.add("bp", gson.toJsonTree(bp));

Gson有其约定,它将a转换Set为a
JsonArray,它是的子类型,JsonElement因此可以使用添加它JsonObject#add(String, JsonElement)



 类似资料:
  • 问题内容: 我正在尝试显示双引号,但它显示的是反斜杠之一: 在html中呈现时,显示为。正确的方法是什么? 问题答案: 试试这个: (在引号前只需一个反斜杠())。

  • 我想显示双引号,但它显示了一个反斜杠: 在html中呈现时,它显示为。正确的方法是什么?

  • 问题内容: 我从公共API接收到一个JSON对象,该对象本身具有一个转义的JSON字符串。 我如何将此属性转换为实际的JSON对象(未转义),以便使用NewtonSoft Json.NET反序列化整个响应? 问题答案: 这是我根据 Sam 的答案使用的可行解决方案:

  • 问题内容: 我坚持这样: 我有一个写在HTML报告。的是 但是该链接不起作用,因为“ Evidencia”未包含在引号中,如何将引号放在参数中? 在带来这二零一三年十月一十日09:15:00.110 问题答案: 您可以使用。在Java中,您可以使用来访问转义字符。

  • 问题内容: 如何在Python中用反斜杠和双引号替换双引号? 我想得到以下内容: 问题答案: 当您只要求’s’时,它会为您转义\,在打印时,您会看到字符串处于更“原始”状态。所以现在

  • 问题内容: 更新: 我想给这个问题一个更新的答案。首先,让我说一下您是否要完成下面的工作,我建议您改为通过添加事件侦听器来管理事件。我强烈建议您将jQuery用于您的项目,并使用其语法来管理事件监听器,而不是使用DOM。 题 好的,我基本上是这样做的: 我不希望在双引号(“)放在'处。我只希望使用单引号,所以我尝试不使它在使用时放入双引号。我试图在最终结果中实现。 转义对我不起作用。 问题答案: