Отправка объекта (JSON) с помощью VBA - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь отправить объект json в Outlook, используя vba.Вот мой код:

Dim Msg As Outlook.MeetingItem
Set Msg = Item
Set recips = Msg.Recipients
Dim regEx As New RegExp
regEx.Pattern = "^\w+\s\w+,\sI351$"
Dim URL As String
URL = "https://webhook.site/55759d1a-7892-4c20-8d15-3b8b7f1bf3b3"

For Each recip In recips
    If regEx.Test(recip.AddressEntry) And recip.AddressEntry <> "Application Management Linux1, I351" Then
        Dim convertedJson As Object
        Set convertedJson = JsonConverter.ParseJson("{""fields"": 123}")
        Set xhr = CreateObject("MSXML2.ServerXMLHTTP.6.0")
        xhr.Open "POST", URL, False
        xhr.setRequestHeader "Content-Type", "application/json"
        xhr.Send (convertedJson)
    End If
Next

Если я отправляю только плоский текст, он работает хорошо, но я не могу отправить convertedJson.Можно ли отправить объект?

ОБНОВЛЕНИЕ

Я даже не могу сделать Debug.Print convertedJson

enter image description here

1 Ответ

0 голосов
/ 15 мая 2018

меня мучили эти библиотеки, в конце концов я сделал очень ужасную вещь

Dim flds, prt, id, smry, descrp, issu, name, lfbrkt, rtbrkt, cma, dbdots, jsTest, issuName As String
flds = "'fields'"
prt = "'project'"
id = "'id'"
smry = "'summary'"
descrp = "'description'"
issu = "'issuetype'"
issuName = "'Improvement'"
name = "'name'"
lfbrkt = "{"
rtbrkt = "}"
cma = ","
dbdots = ":"
jsTest = lfbrkt + flds + dbdots + " " + lfbrkt + vbCrLf + vbTab + prt + dbdots + " " + lfbrkt + vbCrLf + vbTab + vbTab + id + dbdots + " " + "30611" + vbCrLf + vbTab + rtbrkt + cma + vbCrLf + vbTab + smry + dbdots + " " + "'" + CStr(Msg.Subject) + "'" + cma + vbCrLf + vbTab + descrp + dbdots + " " + "'" + CStr(Msg.Body) + "'" + cma + vbCrLf + vbTab + issu + dbdots + " " + lfbrkt + vbCrLf + vbTab + vbTab + name + dbdots + " " + issuName + vbCrLf + vbTab + rtbrkt + vbCrLf + rtbrkt + rtbrkt

И я получил это

enter image description here

...