Разделить определенную часть файла JSON и экспортировать его - PullRequest
0 голосов
/ 14 октября 2018

У меня есть файл JSON, и это предварительный просмотр его структуры enter image description here

Есть ли способ отрезать часть 'allTests' и экспортировать ее в новый файл JSON?

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Использование: https://github.com/VBA-tools/VBA-JSON

Sub ParseItOut()

    Const f_PATH As String = "C:\Users\Tim\Desktop\"
    Dim fso, j, obj, subObj
    Set fso = CreateObject("scripting.filesystemobject")

    j = fso.OpenTextFile(f_PATH & "sample.json").ReadAll()

    Set obj = JsonConverter.ParseJson(j)

    'get the required section
    Set subObj = obj("results")(1)("allTests")

    'write to file as JSON 
    fso.CreateTextFile(f_PATH & "sample_mod.json").Write JsonConverter.ConvertToJson(subObj)

End Sub

РЕДАКТИРОВАТЬ: кажется, что это проблема -

enter image description here

Под всеми тестами каждыйitem - это объект с единственным свойством / ключом (который очень большой и содержит встроенные кавычки, экранированные \) и значением true

В используемой мной библиотеке, похоже, есть проблема с этим (или я не знаю, как правильно его использовать ...)

0 голосов
/ 14 октября 2018

Попробуйте следующее.Специальные символы сохраняются.Надеюсь, что соответствующий JSON вырезан .

Option Explicit
Public Sub GetJSONExtract()
    Dim fso As Object, jsonFile As Object, jsonText As String, arr() As String
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set jsonFile = fso.OpenTextFile("C:\Users\User\Desktop\Sample.json")
    jsonText = jsonFile.ReadAll
    arr = Split(jsonText, Chr$(34) & "allTests" & Chr$(34))
    jsonText = Replace$(arr(2), ":", vbNullString, 1, 1)
    jsonText = Split(jsonText, Chr$(34) & "time" & Chr$(34))(0)
    jsonText = Left$(jsonText, InStrRev(jsonText, ",") - 1)
    With fso.CreateTextFile("C:\Users\User\Desktop\Test.json")
        .write jsonText
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...