【发布时间】:2020-06-23 12:21:48
【问题描述】:
我有一个 mutableMap,
val invoiceAdditionalAttribute = mutableMapOf<String, Any?>()
invoiceAdditionalAttribute.put("clinetId",12345)
invoiceAdditionalAttribute.put("clientName", "digital")
invoiceAdditionalAttribute.put("payload", "xyz")
我想转成json字符串
输出应该是,
"{\"clinetId\"=\"12345\", \"clientName\"=\"digital\", \"payload\"=\"xyz\"}"
目前,我正在使用 Gson 库,
val json = gson.toJson(invoiceAdditionalAttribute)
输出是
{"clinetId":12345,"clientName":"digital","payload":"xyz"}
【问题讨论】:
-
您使用的方法有什么问题?
"{\"clinetId\"=\"12345\", \"clientName\"=\"digital\", \"payload\"=\"xyz\"}"- 这不是 json 字符串。 JSON 有它自己的格式化模式,并且该字符串不遵守它。gson.toJson(invoiceAdditionalAttribute)- 是获取 json 字符串的正确方法。 -
输出看起来对我来说是正确的,我也从未见过 = 在 json 字符串中
-
输出是对的。您想要的输出(无效的 json)与
"转义("\"")是 Java 的有效字符串。如果你真的想逃避它,你可以这样做String escapedJson = json.replaceAll("\"", "\\\\\""); -
可以使用StringEscapeUtils.escapeJava进行字符串转义