I'm trying to create a json object that is exported and available to other
Javascript libraries. Here's a trivial example below. The code below works, I
can generate the js file, access the exported vars in the browser js console
and it works with my other library.
But I wish it weren't so verbose. My real json objects will be much larger,
more deeply nested and have many more variations in format. I really like the
%* macro in the json module, but the js it generates is not in a format that
other libraries can use.
How can this be improved?
import jsffi
# {
# "friends": [
# {
# "val": 19,
# "name": "wendy",
# "lang": "nim"
# }
# ],
# "name": "sam",
# "val": 21
# }
proc makeObj1(): JsObject =
result = newJsObject()
result.val = 19
result.name = cstring"wendy"
result.lang = cstring"nim"
proc makeObj2(): JsObject =
result = newJsObject()
result.friends = [
makeObj1()
]
result.name = cstring"sam"
result.val = 21
var myobj2 {.exportc: "myobj2".} = makeObj2()
Run