1

我有一个json文件。我想编码成base64字符串并json使用jsonnet将其添加到我的 main 中。

datasources.json

{
  "datasources": [{
    "id": 1,
    "orgId": 1,
    "name": "prometheus"
  }]
}

grafana.jsonnet

local getDataSources() = {
    'datasources': (import 'datasources.json').datasources,
};

local kp = {
    dashboardDatasources+: {
       data: std.base64(getDataSources().datasources),
    }
}
kp

请建议如何完成这项工作。努力转换jsonjsonnet.

4

1 回答 1

2

这可以使用std.manifestJsonEx来完成

std.manifestJsonEx(value, indent) 将给定对象转换为 JSON 形式。indent 是一个包含一个或多个用于缩进的空格的字符串:

这是解决方案:

local getDataSources() = {
    'datasources': (import 'datasources.json').datasources,
};

local dataSources = getDataSources().datasources;

local kp = {
    dashboardDatasources+: {
       data: std.base64(std.manifestJsonEx(dataSources, " ")),
    }
}
kp
于 2019-03-07T13:15:47.463 回答