如何在jsonnet中将字符串转换为整数?

kgr*_*ney 5 json jsonnet

我有一个字符串,其中包含Jsonnet变量中的数字.如何将其转换为整数?

moh*_*oni 5

Jsonnet 的标准库提供了一个:std.parseInt(str)函数,可以从给定的输入字符串中解析一个带符号的十进制整数。例如:

std.parseInt("123") // yields 123
std.parseInt("-456") // yields -456
Run Code Online (Sandbox Code Playgroud)

参考:http : //jsonnet.org/docs/stdlib.html


kgr*_*ney -1

Jsonnet 标准库相当薄,但这里是执行此转换的 Jsonnet 函数的示例。

{
    string_to_int(s)::
        local char_to_int(c) = std.codepoint(c) - std.codepoint("0");
        local digits = std.map(char_to_int, std.stringChars(s));
        std.foldr(function(x,y) x+y,
                  std.makeArray(std.length(digits),
                                function(x) digits[std.length(digits)-x-1]*std.pow(10, x)),
                  0),
}
Run Code Online (Sandbox Code Playgroud)