最近笔者写vba代码的时候需要将一组数据包装成json数据作为参数传递,然而网上搜索了一圈,并没有发现如PHP的json_encode,decode之类通用的方法。后来看到另外一位博主的文章,是利用字典+递归算法来实现(原文:在 VBA 中将对象转换为 JSON |),虽然对于笔者的场景来说已经够用了,但毕竟没达到php object那样便利,然而vba的字典本身是支持方便的object关联关系的,于是笔者强迫症犯了,尝试着做了一下改写,权作记录吧:
'将数组/dictionary转换为json字符串
'参数:object可以为普通数组、Dictionary或Dictionary数组,Dictionary为key-value键值对,value可以支持数字、字符串、普通数组、Dictionary或Dictionary数组,普通数组中可以是数字或者字符串
'参考来源:https://qa.1r1g.com/sf/ask/2314208291/
Function objToJson(ByVal object) As String
Dim result As String
If IsArray(object) Then
result = "["
For Each obj In object
result = result & IIf(Len(result) > 1, ",", "")
If TypeN