luajit-jsonnet 是 针对google jsonnet的lua开发支持。
luajit-jsonnet - The Google Jsonnet( operation data template language) for Luajit
Contents
Name
Description
install
Methods
new
make
evaluate_file
evaluate_snippet
evaluate_file_multi
evaluate_snippet_multi
destroy
jsonnet is a domain specific configuration language that helps you define JSON data. Jsonnet lets you compute fragments of JSON within the structure, bringing the same benefit to structured data that templating languages bring to plain text. The example below illustrates a few features – referring to another part of the structure, overriding object fields, and string operations......
luajit-jsonnet - Use the luajit ffi jsonnet interface calls and operation
Google jsonnet documet: (http://google.github.io/jsonnet/doc/)
Simple executing the following command
make install
Create a luajit - jsonnet object
local jso = require "jsonnet" jsonnet = jso:new()
Create a new Jsonnet virtual machine.
syntax: res, err = jsonnet:make()
Evaluate a file containing Jsonnet code, return a JSON string.
syntax: res,err = jsonnet:evaluate_file("t.jsonnet") local jso = require "jsonnet" jsonnet = jso:new() jsonnet:make() res,err = jsonnet:evaluate_file("t.jsonnet") if err == nil then print(res) else print(err) end
jsonnet#evaluate_snippet)evaluate_snippet
syntax: res,err = jsonnet:evaluate_snippet(snippet) local snippet = '{ person1: { name: "Alice", welcome: "Hello " + self.name + "!", }, person2: self.person1 { name: "Bob" },}' res,err = jsonnet:evaluate_snippet(snippet) if err == nil then print(res) else print(err) end
jsonnet#evaluate_file_multi)evaluate_file_multi
Evaluate a file containing Jsonnet code, return a number of JSON files. The returned character buffer contains an even number of strings, the filename and JSON for each
syntax: res,err = jsonnet:evaluate_file_multi("t.jsonnet")
jsonnet#evaluate_snippet_multi)evaluate_snippet_multi
Evaluate a string containing Jsonnet code, return a number of JSON files. The returned character buffer contains an even number of strings, the filename and JSON for each
syntax: res,err = jsonnet:evaluate_snippet_multi(snippet)
Shut down and release Jsonnet virtual machine.
syntax: res,err = jsonnet:destroy(vm) local jso = require "jsonnet" jsonnet = jso:new() jsonnet:make() res,err = jsonnet:evaluate_file("t.jsonnet") jsonnet:destroy()