Add LICENSE and README.md for VBA-JSON library
- Added MIT License file to the json-converter directory. - Created README.md with usage examples, installation instructions, and options for the VBA-JSON library.
This commit is contained in:
16
manifests/default-m-set.json
Normal file
16
manifests/default-m-set.json
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"manifest_version": "0.0.1",
|
||||||
|
"last_updated": "2026-02-20",
|
||||||
|
"config": {
|
||||||
|
"base_url": "https://gitea.shamanlanding.org/DaTekShaman/spqr/src/branch/main/power-query",
|
||||||
|
"require_auth": true
|
||||||
|
},
|
||||||
|
"queries": {
|
||||||
|
"fn_CleanCorporateDates": "fExtractAndRename.m",
|
||||||
|
"fn_ParseSASOutput": "fGetSheet.m",
|
||||||
|
"fn_UnpivotMatrix": "fIfBlank",
|
||||||
|
"dim_Calendar": "fRenameColumns.m",
|
||||||
|
"fn_UnpivotMatrix": "fReplace.m",
|
||||||
|
"dim_Calendar": "fReplaceFunction.m"
|
||||||
|
}
|
||||||
|
}
|
||||||
1123
third-party-libraries/vba/json-converter/JsonConverter.bas
Normal file
1123
third-party-libraries/vba/json-converter/JsonConverter.bas
Normal file
File diff suppressed because it is too large
Load Diff
21
third-party-libraries/vba/json-converter/LICENSE
Normal file
21
third-party-libraries/vba/json-converter/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016 Tim Hall
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
108
third-party-libraries/vba/json-converter/README.md
Normal file
108
third-party-libraries/vba/json-converter/README.md
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
# VBA-JSON
|
||||||
|
|
||||||
|
JSON conversion and parsing for VBA (Windows and Mac Excel, Access, and other Office applications).
|
||||||
|
It grew out of the excellent project [vba-json](https://code.google.com/p/vba-json/),
|
||||||
|
with additions and improvements made to resolve bugs and improve performance (as part of [VBA-Web](https://github.com/VBA-tools/VBA-Web)).
|
||||||
|
|
||||||
|
Tested in Windows Excel 2013 and Excel for Mac 2011, but should apply to 2007+.
|
||||||
|
|
||||||
|
- For Windows-only support, include a reference to "Microsoft Scripting Runtime"
|
||||||
|
- For Mac and Windows support, include [VBA-Dictionary](https://github.com/VBA-tools/VBA-Dictionary)
|
||||||
|
|
||||||
|
<a href="https://www.patreon.com/timhall">
|
||||||
|
<img src="https://timhall.github.io/assets/donate-patreon@2x.png" width="217" alt="Donate">
|
||||||
|
</a>
|
||||||
|
|
||||||
|
# Examples
|
||||||
|
|
||||||
|
```vb
|
||||||
|
Dim Json As Object
|
||||||
|
Set Json = JsonConverter.ParseJson("{""a"":123,""b"":[1,2,3,4],""c"":{""d"":456}}")
|
||||||
|
|
||||||
|
' Json("a") -> 123
|
||||||
|
' Json("b")(2) -> 2
|
||||||
|
' Json("c")("d") -> 456
|
||||||
|
Json("c")("e") = 789
|
||||||
|
|
||||||
|
Debug.Print JsonConverter.ConvertToJson(Json)
|
||||||
|
' -> "{"a":123,"b":[1,2,3,4],"c":{"d":456,"e":789}}"
|
||||||
|
|
||||||
|
Debug.Print JsonConverter.ConvertToJson(Json, Whitespace:=2)
|
||||||
|
' -> "{
|
||||||
|
' "a": 123,
|
||||||
|
' "b": [
|
||||||
|
' 1,
|
||||||
|
' 2,
|
||||||
|
' 3,
|
||||||
|
' 4
|
||||||
|
' ],
|
||||||
|
' "c": {
|
||||||
|
' "d": 456,
|
||||||
|
' "e": 789
|
||||||
|
' }
|
||||||
|
' }"
|
||||||
|
```
|
||||||
|
|
||||||
|
```vb
|
||||||
|
' Advanced example: Read .json file and load into sheet (Windows-only)
|
||||||
|
' (add reference to Microsoft Scripting Runtime)
|
||||||
|
' {"values":[{"a":1,"b":2,"c": 3},...]}
|
||||||
|
|
||||||
|
Dim FSO As New FileSystemObject
|
||||||
|
Dim JsonTS As TextStream
|
||||||
|
Dim JsonText As String
|
||||||
|
Dim Parsed As Dictionary
|
||||||
|
|
||||||
|
' Read .json file
|
||||||
|
Set JsonTS = FSO.OpenTextFile("example.json", ForReading)
|
||||||
|
JsonText = JsonTS.ReadAll
|
||||||
|
JsonTS.Close
|
||||||
|
|
||||||
|
' Parse json to Dictionary
|
||||||
|
' "values" is parsed as Collection
|
||||||
|
' each item in "values" is parsed as Dictionary
|
||||||
|
Set Parsed = JsonConverter.ParseJson(JsonText)
|
||||||
|
|
||||||
|
' Prepare and write values to sheet
|
||||||
|
Dim Values As Variant
|
||||||
|
ReDim Values(Parsed("values").Count, 3)
|
||||||
|
|
||||||
|
Dim Value As Dictionary
|
||||||
|
Dim i As Long
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
For Each Value In Parsed("values")
|
||||||
|
Values(i, 0) = Value("a")
|
||||||
|
Values(i, 1) = Value("b")
|
||||||
|
Values(i, 2) = Value("c")
|
||||||
|
i = i + 1
|
||||||
|
Next Value
|
||||||
|
|
||||||
|
Sheets("example").Range(Cells(1, 1), Cells(Parsed("values").Count, 3)) = Values
|
||||||
|
```
|
||||||
|
|
||||||
|
## Options
|
||||||
|
|
||||||
|
VBA-JSON includes a few options for customizing parsing/conversion if needed:
|
||||||
|
|
||||||
|
- __UseDoubleForLargeNumbers__ (Default = `False`) VBA only stores 15 significant digits, so any numbers larger than that are truncated.
|
||||||
|
This can lead to issues when BIGINT's are used (e.g. for Ids or Credit Cards), as they will be invalid above 15 digits.
|
||||||
|
By default, VBA-JSON will use `String` for numbers longer than 15 characters that contain only digits, use this option to use `Double` instead.
|
||||||
|
- __AllowUnquotedKeys__ (Default = `False`) The JSON standard requires object keys to be quoted (`"` or `'`), use this option to allow unquoted keys.
|
||||||
|
- __EscapeSolidus__ (Default = `False`) The solidus (`/`) is not required to be escaped, use this option to escape them as `\/` in `ConvertToJson`.
|
||||||
|
|
||||||
|
```VB.net
|
||||||
|
JsonConverter.JsonOptions.EscapeSolidus = True
|
||||||
|
```
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Download the [latest release](https://github.com/VBA-tools/VBA-JSON/releases)
|
||||||
|
2. Import `JsonConverter.bas` into your project (Open VBA Editor, `Alt + F11`; File > Import File)
|
||||||
|
3. Add `Dictionary` reference/class
|
||||||
|
- For Windows-only, include a reference to "Microsoft Scripting Runtime"
|
||||||
|
- For Windows and Mac, include [VBA-Dictionary](https://github.com/VBA-tools/VBA-Dictionary)
|
||||||
|
|
||||||
|
## Resources
|
||||||
|
|
||||||
|
- [Tutorial Video (Red Stapler)](https://youtu.be/CFFLRmHsEAs)
|
||||||
Reference in New Issue
Block a user