有没有办法打印 jsonnet 中的对象?这主要用于调试目的。
我正在用来error打印对象,但这会终止程序执行。
local obj = [
{
myKey: 2,
}];
error 'Printing' + std.toString(obj)
Run Code Online (Sandbox Code Playgroud)
输出:
RUNTIME ERROR: Printing[{"myKey": 2}]
snippet:6:1-37
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?
跟进 Dave Cunningham 的答案,std.trace()自 0.11.0 起可用,它的行为就像“中间的钩子”,其中第一个参数是您要显示的字符串,第二个参数是您要返回的字符串。
将其用于提供的示例:
$ cat foo.jsonnet
local obj = [
{
myKey: 2,
}];
std.trace("obj content: %s" % [obj], obj)
$ jsonnet foo.jsonnet
TRACE: foo.jsonnet:5 obj content: [{"myKey": 2}]
[
{
"myKey": 2
}
]
Run Code Online (Sandbox Code Playgroud)