我想知道,是否有一种使用 javascript 或 typescript 的方法 将 JSON 转换为 INI 格式。我是新手。
来自:
{
"peerEndpoint": "blub.bla:49997",
"peerPublicKey": "dfasdfasfsdfasdfa",
"deviceIPs": [
"10.40.16.1"
],
"peerAllowedIPs": [
"10.40.16.0/22",
"10.40.0.0/20"
],
"applications": {}
}
至:
Address = 10.40.16.1/32
[Peer]
PublicKey = dfasdfasfsdfasdfa
Endpoint = blub.bla:49997
AllowedIPs = 10.40.16.0/22, 10.40.0.0/20
提前非常感谢您!
当然。见下图:
/*
Address = 10.40.16.1/32
[Peer]
PublicKey = dfasdfasfsdfasdfa
Endpoint = blub.bla:49997
AllowedIPs = 10.40.16.0/22, 10.40.0.0/20
*/
let json = {
"peerEndpoint": "blub.bla:49997",
"peerPublicKey": "dfasdfasfsdfasdfa",
"deviceIPs": [
"10.40.16.1"
],
"peerAllowedIPs": [
"10.40.16.0/22",
"10.40.0.0/20"
],
"applications": {}
}
function displayIPs(arr) {
return arr.map(item => item + ((item.indexOf("/") === -1) ? "/32" : "")).join(",");
}
let template = `Address = ${displayIPs(json.deviceIPs)}<br>[Peer]<br>`;
let jsonKeys = ['peerEndpoint', 'peerPublicKey', 'peerAllowedIPs'];
for (let key of jsonKeys) {
if (key.indexOf("peer") === 0) {
let k = key.substring(4);
template += `${k} = ${(k === "AllowedIP") ? displayIPs(json[key]) : json[key]}<br>`;
}
}
document.write(template);
说明:
如果您有机会使用 Node.js 环境: 您只需安装并使用即可
npm install json2ini
在你的代码中你可以使用这样的东西:
const json2ini = require('json2ini');
const jsonData = {
// YOUR JSON-DATA
};
const iniData = json2ini(jsonData);
console.log(iniData);
如果没有,我想 Lajos Arpad 的方法会成功。