下面是我的制作方法,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]"}
但这不是我所需要的。我想像下面这样打印出来,没有双引号ap
和bp
值。
{"description":"test data","ap":[0, 1100, 4, 1096],"bp":[1101, 3, 6, 1098]}
我不确定如何在JSONObject中转义引号?
你的问题是
jsonObject.addProperty("ap", ap.toString());
您正在添加一个属性,它是Java中的String
表示形式Set
。它与JSON无关(即使格式看起来相同)。
您将必须将其转换Set
为JsonElement
(JsonArray
确实,但您不会看到)。
在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’时,它会为您转义\,在打印时,您会看到字符串处于更“原始”状态。所以现在
问题内容: 我声明了两个Realm表: 最终目标是将Task Realm对象转换为JSON。我在想的方法是: 使用类中的方法将对象转换为字典 使用SwiftyJSON将结果字典转换为JSON 现在,这可以转换,但是: 有一个更好的方法吗? 如何将RLMArray转换为数组以进行JSON转换? 问题答案: 设法在这里找到答案: 我可以在Realm forSwift中将RealmObject序列化为J