如何在VBA / Excel中展平JSON

时间:2017-05-23 16:35:17

标签: json vba

我正在尝试在Excel中编写一个脚本,该脚本将采用一串JSON并将其展平。与JS中的相似。

http://fiddle.jshell.net/zachc/S2hsS/101/embedded/result/

最简单的方法是什么?谢谢!

1 个答案:

答案 0 :(得分:0)

来自JS小提琴的

flatten函数可以转换为VBA,如下面的代码所示。 JSON.bas模块导入VBA项目以进行JSON处理。

Option Explicit

Sub Test()

    Debug.Print FlattenJSON("{foo:{bar:false,data:[1,[2,[3,4],5],6]}}")

End Sub

Function FlattenJSON(sJSON As String) As String

    Dim sState As String
    Dim vJSON As Variant
    Dim vResult As Variant

    JSON.Parse sJSON, vJSON, sState
    If sState = "Error" Then MsgBox "Invalid JSON": End
    JSON.Flatten vJSON, vResult
    FlattenJSON = JSON.Serialize(vResult)

End Function

我的输出如下:

{
    "foo.bar": false,
    "foo.data[0]": 1,
    "foo.data[1][0]": 2,
    "foo.data[1][1][0]": 3,
    "foo.data[1][1][1]": 4,
    "foo.data[1][2]": 5,
    "foo.data[2]": 6
}