Jsonnet
Posted by Bruce Tsai
06/07/2016
Jsonnet是 Google 所推出,帶著一點程式語言特性的 JSON 文件格式,例如多了個self:
{
person1: {
name: "Alice",
welcome: "Hello " + self.name + "!",
},
person2: self.person1 { name: "Bob" },
}
還有 tempalte string:
{
fmt2: "The word %(wd)s has %(le)d letters. Go %(wd)s!"
% {wd: $.word, le: std.length($.word)},
}
Array comprehension:
{
foo: [1, 2, 3],
bar: [x * x for x in self.foo if x >= 2],
baz: { ["field" + x]: x for x in self.foo },
obj: { ["foo" + "bar"]: 3 },
}
除了這些程式語法的特性之外, Jsonnet 還有像是 Hjson 的一些比較人性化的語法的支援,官網上則自稱是是一種 data template language,而不是單純的資料而已。