Как преобразовать json в строку base64 в jsonnet

У меня есть json файл. Я хочу закодировать в base64 строку и добавить ее в свой основной json, используя jsonnet.

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

Пожалуйста, подскажите, как это сделать. Пытается преобразовать json в строку в jsonnet.


person Alok Kumar Singh    schedule 07.03.2019    source источник


Ответы (1)


Это можно сделать с помощью std.manifestJsonEx.

std.manifestJsonEx (значение, отступ) Преобразует данный объект в форму JSON. indent - это строка, содержащая один или несколько пробелов, которые используются для отступа:

Вот решение:

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

local dataSources = getDataSources().datasources;

local kp = {
    dashboardDatasources+: {
       data: std.base64(std.manifestJsonEx(dataSources, " ")),
    }
}
kp
person Alok Kumar Singh    schedule 07.03.2019