如何在双引号之前避免Java JSONObject中的反斜杠?

时间:2020-11-06 23:46:01

标签: java json double-quotes backslash

我使用Java类创建了一些JSONObject。让我们称之为MyJSONObject。它应该是另一个JSON对象的内部String部分。这样:

[
    {
        "httpRequest": {...},
        "httpResponse": {
            "headers": {
                "content-type": [
                    "application/json"
                ]
            },
            "body": "MyJSONObject"
        }
]

问题是当我尝试使用mapper.writeValueAsString(MyJSONObject)将其作为字符串放置时,我在控制台主体中收到所有带反斜杠的引号:

[
    {
        "httpRequest": {...},
        "httpResponse": {
            "headers": {...},
            "body": "{\"key\":\"value\",\"key\":\"value\"}"
        }
]

而不是预期的:

        "body": "{"key":"value","key":"value"}"

我尝试对我的字符串使用方法replace("\"", "\\\"")用反斜杠将每个引号替换为引号,但结果甚至更糟:

        "body": "{\\\"key\\\":\\\"value\\\",\\\"key":\\\"value\\\"}"

我怎样才能将我的字符串放在反斜杠旁边?

1 个答案:

答案 0 :(得分:-1)

您可以尝试以下方法,这将为您带来预期的结果。

JSONObject subJson = new JSONObject(); subJson.put(“name”, “java”);

JSONObject parentJson = new JSONObject() parentJson.put(“company”, ”stack”); parentJson.put(“employees”, subJson);

System.out.print(“Final output - ” + parentJson.toString());