Разбор JSON в Excel 365 без ссылки на 32-битный элемент управления MSScript - PullRequest
0 голосов
/ 23 октября 2019

Мы обновляем устаревшее приложение для работы с электронными таблицами в 64-разрядной версии Excel 365, победа 10. Приложение для работы с электронными таблицами взаимодействует с RESTful API через сообщение HTTP, анализ JSON анализируется с использованием «MSScriptControl.ScriptControl».

Приложение для работы с электронными таблицами не работает в 64-разрядной версии Excel 365, поскольку базовая «среда выполнения сценариев Microsoft» (scrrun.dll) представляет собой 32-разрядный файл и изначально не поддерживается в Excel 365, win 10. Мы рассматривали различные решения, такие как https://github.com/VBA-tools/VBA-JSON однако это решение все еще использует среду выполнения сценариев и завершается ошибкой. Мы также рассмотрели альтернативные среды выполнения сценариев, такие как https://github.com/tablacus/TablacusScriptControl, но мы не смогли бы выпустить новую среду выполнения сценариев на клиентских машинах.

Приведенный ниже код иллюстрирует то, что мы в настоящее время делаем в нашем VBA. код:

    Set request = CreateObject("MSXML2.XMLHTTP")
    Set scriptControl = CreateObject("MSScriptControl.ScriptControl")

    request.Open "post", custom_url, False
    jsonRequest = "..."
    request.Send (jsonRequest)

    If request.Status = 200 Then

        scriptControl.Language = "JScript"
        scriptControl.AddCode "function GetPropertyValue(jsonObj, propertyName) { return jsonObj[propertyName]; } "

        Set json = scriptControl.Eval("(" + request.ResponseText + ")")

    End If

Мы искали простое решение в Интернете, но не можем его найти. Как вы анализируете JSON в Excel 365 VBA без необходимости писать собственный анализатор JSON? Существуют ли какие-либо библиотеки, эквивалентные MS, элементу управления MSScript, которые можно использовать в 64-разрядной версии Excel 365?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...