Как избежать обратной косой черты в java JSONObject перед двойными кавычками?

#java #json #double-quotes #backslash

#java #json #двойные кавычки #обратная косая черта

Вопрос:

Я создаю некоторый JSONObject, используя классы java. Давайте назовем это MyJSONObject. Это должна быть внутренняя строковая часть другого объекта JSON. Вот так:

 [
    {
        "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. Ваша «ожидаемая» версия — недопустимый JSON.

Ответ №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());