JsonWriter.ValueSafeArraymethod
Serializes a 1‑D SAFEARRAY as JSON array with smart inline vs pretty layout.
Syntax
SUB ValueSafeArray (BYREF sa AS DSafeArray)
Description
Serializes a 1‑D SAFEARRAY as JSON array with smart inline vs pretty layout.
Escapes VT_BSTR directly; otherwise serializes each element with ValueVariant.
Examples
#include once "AfxNova/AfxJson.inc" USING AfxNova
DIM dvArr AS DSafeArray dvArr.Create(VT_VARIANT, 3, 0) dvArr.PutVar(0, DVARIANT("first ??")) dvArr.PutVar(1, DVARIANT(42)) dvArr.PutVar(2, DVARIANT(3.14159)) DIM jw AS JsonWriter jw.SetIndentSize(2) ' 2-space indent jw.BeginObject() jw.Name("title") : jw.Value("Test") jw.Name("data") : jw.ValueSafeArray(dvArr) jw.EndObject() PRINT jw.ToBString()
' Outout: { "title": "Test", "data": [
"first",
42,
3.14159
] }
#include once "AfxNova/AfxJson.inc" USING AfxNova
DIM tiny AS DSafeArray tiny.Create(VT_VARIANT, 3, 0) tiny.PutVar(0, DVARIANT(1)) tiny.PutVar(1, DVARIANT(2)) tiny.PutVar(2, DVARIANT(3)) DIM jw As JsonWriter jw.SetIndentSize(2) jw.SetInlineThreshold(20) ' tighten threshold jw.BeginObject() jw.Name("a") : jw.ValueSafeArray(tiny) jw.Name("b") : jw.Value("longer text here will break inline") jw.EndObject()
Output: { "a": [ 1, 2, 3 ], "b": "longer text here will break inline" }
SAFEARRAY serialization with inline suppression.
Reference
- Defined in AfxNova/AfxJson.inc:622
- Documented in WebView/Json Classes.md
- Topic: JSON Reader and Writer classes