Как исправить ошибку перевода строки в json: недопустимый символ без кавычек ... должен быть экранирован с помощью обратной косой черты - PullRequest
0 голосов
/ 16 мая 2018

Я генерирую JSON из электронной почты в Outlook, используя VBA.

Содержимое Meetingitem.Body включает переводы строки.Когда я включаю это содержимое в свой json в виде строки, я получаю сообщение об ошибке.

Можно ли этого избежать?

{"fields": {
    "project": {
        "id": 30611
    },
    "summary": "Release Produktion-System",
    "description": "Guten Tag

Sie erhalten diese Terminanfrage weil Ihnen im Change 2018.04.24.015 <http://pww.post.ch/appl/oe/it/changemanagement/wpl/pages/editchange.aspx?changeId=29774>  die im Betreff aufgeführte Tätigkeit zugeordnet wurde. Bitte bestätigen Sie die Terminanfrage im Outlook, damit für die Ausführung der Tätigkeit der entsprechende Zeitraum in Ihrem Kalender reserviert wird.
(Unter offene Termine die entsprechende Tätigkeit mit Bearbeiten öffnen, und den Status anpassen. Es stehen Ihnen folgende Abschlussstatus zur Verfügung: Erledigt, Verzögert, Abgebrochen).

Freundliche Grüsse
Muster Mus

Musterfirma
Informatik

Telefon: +553344556622
Email: muster.muss@mail.com

",
    "issuetype": {
        "name": "Test"
    }
}
}

Это запрос POST к серверу, а вотответ:

{
    "errorMessages": [
        "Illegal unquoted character ((CTRL-CHAR, code 13)): has to be escaped using backslash to be included in string value\n at [Source: org.apache@4jasdn4; line: 6, column: 28]"
    ]
}

Для генерации этого json я использую следующий код (короткий вариант):

Dim smry, descrp, jsTest As String
smry = """summary"""
descrp = """description"""
jsTest = "{" + smry + ":" + """" + CStr(Msg.Subject) + """" + "," + descrp + ":" + """" + CStr(Msg.Body) + """" + "}"
...