In postman project,I am maintaining multiple variables in a single enviornment JSON file.
To maintain code,I want to fetch specific which means required objects from the JSON file and do write in new JSON file.(For Example From Attached Pic),Want to fetch object which is having key name as "UTCDateTime" and write it into a separate JSON file.
Is it possible in JS? Thanks in advance
{
"id": "6****8-1b78-48af-aff2-28******4565",
"name": "Dev_C@of@g_@ile",
"values": [
{
"key": "JobName",
"value": "QATest123",
"type": "any",
"enabled": true
},
{
"key": "JobIdentity",
"value": "12356",
"type": "any",
"enabled": true
},
{
"key": "JobData",
"value": "[\"Asia/Almaty\",\"Asia/Amman\",\"Asia/Anadyr\",\"Asia/Aqtau\",\"Asia/Aqtobe\",\"Asia/Ashgabat\",\"Asia/Atyrau\",\"Asia/Baghdad\",\"Asia/Baku\",\"Asia/Bangkok\",\"Asia/Barnaul\",\"Asia/Beirut\",\"Asia/Bishkek\",\"Asia/Chita\",\"Asia/Choibalsan\",\"Asia/Colombo\",\"Asia/Damascus\",\"Asia/Dhaka\",\"Asia/Dili\",\"Asia/Dubai\",\"Asia/Dushanbe\",\"Asia/Famagusta\",\"Asia/Gaza\",\"Asia/Hebron\",\"Asia/Ho_Chi_Minh\",\"Asia/Hong_Kong\",\"Asia/Hovd\",\"Asia/Irkutsk\",\"Asia/Jakarta\",\"Asia/Jayapura\",\"Asia/Jerusalem\",\"Asia/Kabul\",\"Asia/Kamchatka\",\"Asia/Karachi\",\"Asia/Kathmandu\",\"Asia/Khandyga\",\"Asia/Kolkata\",\"Asia/Krasnoyarsk\",\"Asia/Kuching\",\"Asia/Macau\",\"Asia/Magadan\",\"Asia/Makassar\",\"Asia/Manila\",\"Asia/Nicosia\",\"Asia/Novokuznetsk\",\"Asia/Novosibirsk\",\"Asia/Omsk\",\"Asia/Oral\",\"Asia/Pontianak\",\"Asia/Pyongyang\",\"Asia/Qatar\",\"Asia/Qostanay\",\"Asia/Qyzylorda\",\"Asia/Riyadh\",\"Asia/Sakhalin\",\"Asia/Samarkand\",\"Asia/Seoul\",\"Asia/Shanghai\",\"Asia/Singapore\",\"Asia/Srednekolymsk\",\"Asia/Taipei\",\"Asia/Tashkent\",\"Asia/Tbilisi\",\"Asia/Tehran\",\"Asia/Thimphu\",\"Asia/Tokyo\",\"Asia/Tomsk\",\"Asia/Ulaanbaatar\",\"Asia/Urumqi\",\"Asia/Ust-Nera\",\"Asia/Vladivostok\",\"Asia/Yakutsk\",\"Asia/Yangon\",\"Asia/Yekaterinburg\",\"Asia/Yerevan\"]",
"type": "any",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2024-05-06T12:22:19.783Z",
"_postman_exported_using": "Postman/11.0.6"
}
This code can generate environment JSON files.
The script reads a JSON file containing environment data.
It iterates through each key-value pair, creating a new JSON object for each key.
It writes each JSON object to a separate file, using the key as the prefix in the file name.
Save as demo.js
const fs = require('fs');
const { v4: uuidv4 } = require('uuid');
const inputFileName = 'data.postman_environment.json'; // Read the input JSON file
const inputFileContent = fs.readFileSync(inputFileName, 'utf8');
const data = JSON.parse(inputFileContent); // Parse the JSON content
// Iterate over each key in the JSON object
data.values.forEach((item, index) => {
const id = uuidv4(); // Generate a random UUID for each key
// Create a new JSON object
const outputData = {
id,
name: `${item.key}`,
values: [item],
_postman_variable_scope: data._postman_variable_scope,
_postman_exported_at: data._postman_exported_at,
_postman_exported_using: data._postman_exported_using
};
// Write each JSON object to a separate file
const outputFileName = `${item.key}.postman_environment.json`;
fs.writeFileSync(outputFileName, JSON.stringify(outputData, null, 4));
console.log(`File '${outputFileName}' created.`);
});
Save as data.postman_environment.json
{
"id": "6****8-1b78-48af-aff2-28******4565",
"name": "Dev_C@of@g_@ile",
"values": [
{
"key": "JobName",
"value": "QATest123",
"type": "any",
"enabled": true
},
{
"key": "JobIdentity",
"value": "12356",
"type": "any",
"enabled": true
},
{
"key": "JobData",
"value": "[\"Asia/Almaty\",\"Asia/Amman\",\"Asia/Anadyr\",\"Asia/Aqtau\",\"Asia/Aqtobe\",\"Asia/Ashgabat\",\"Asia/Atyrau\",\"Asia/Baghdad\",\"Asia/Baku\",\"Asia/Bangkok\",\"Asia/Barnaul\",\"Asia/Beirut\",\"Asia/Bishkek\",\"Asia/Chita\",\"Asia/Choibalsan\",\"Asia/Colombo\",\"Asia/Damascus\",\"Asia/Dhaka\",\"Asia/Dili\",\"Asia/Dubai\",\"Asia/Dushanbe\",\"Asia/Famagusta\",\"Asia/Gaza\",\"Asia/Hebron\",\"Asia/Ho_Chi_Minh\",\"Asia/Hong_Kong\",\"Asia/Hovd\",\"Asia/Irkutsk\",\"Asia/Jakarta\",\"Asia/Jayapura\",\"Asia/Jerusalem\",\"Asia/Kabul\",\"Asia/Kamchatka\",\"Asia/Karachi\",\"Asia/Kathmandu\",\"Asia/Khandyga\",\"Asia/Kolkata\",\"Asia/Krasnoyarsk\",\"Asia/Kuching\",\"Asia/Macau\",\"Asia/Magadan\",\"Asia/Makassar\",\"Asia/Manila\",\"Asia/Nicosia\",\"Asia/Novokuznetsk\",\"Asia/Novosibirsk\",\"Asia/Omsk\",\"Asia/Oral\",\"Asia/Pontianak\",\"Asia/Pyongyang\",\"Asia/Qatar\",\"Asia/Qostanay\",\"Asia/Qyzylorda\",\"Asia/Riyadh\",\"Asia/Sakhalin\",\"Asia/Samarkand\",\"Asia/Seoul\",\"Asia/Shanghai\",\"Asia/Singapore\",\"Asia/Srednekolymsk\",\"Asia/Taipei\",\"Asia/Tashkent\",\"Asia/Tbilisi\",\"Asia/Tehran\",\"Asia/Thimphu\",\"Asia/Tokyo\",\"Asia/Tomsk\",\"Asia/Ulaanbaatar\",\"Asia/Urumqi\",\"Asia/Ust-Nera\",\"Asia/Vladivostok\",\"Asia/Yakutsk\",\"Asia/Yangon\",\"Asia/Yekaterinburg\",\"Asia/Yerevan\"]",
"type": "any",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2024-05-06T12:22:19.783Z",
"_postman_exported_using": "Postman/11.0.6"
}
npm install uuid
node demo.js
JobData.postman_environment.json
{
"id": "0c51c1f6-25c8-4c52-b46c-bb2bf7761be0",
"name": "JobData",
"values": [
{
"key": "JobData",
"value": "[\"Asia/Almaty\",\"Asia/Amman\",\"Asia/Anadyr\",\"Asia/Aqtau\",\"Asia/Aqtobe\",\"Asia/Ashgabat\",\"Asia/Atyrau\",\"Asia/Baghdad\",\"Asia/Baku\",\"Asia/Bangkok\",\"Asia/Barnaul\",\"Asia/Beirut\",\"Asia/Bishkek\",\"Asia/Chita\",\"Asia/Choibalsan\",\"Asia/Colombo\",\"Asia/Damascus\",\"Asia/Dhaka\",\"Asia/Dili\",\"Asia/Dubai\",\"Asia/Dushanbe\",\"Asia/Famagusta\",\"Asia/Gaza\",\"Asia/Hebron\",\"Asia/Ho_Chi_Minh\",\"Asia/Hong_Kong\",\"Asia/Hovd\",\"Asia/Irkutsk\",\"Asia/Jakarta\",\"Asia/Jayapura\",\"Asia/Jerusalem\",\"Asia/Kabul\",\"Asia/Kamchatka\",\"Asia/Karachi\",\"Asia/Kathmandu\",\"Asia/Khandyga\",\"Asia/Kolkata\",\"Asia/Krasnoyarsk\",\"Asia/Kuching\",\"Asia/Macau\",\"Asia/Magadan\",\"Asia/Makassar\",\"Asia/Manila\",\"Asia/Nicosia\",\"Asia/Novokuznetsk\",\"Asia/Novosibirsk\",\"Asia/Omsk\",\"Asia/Oral\",\"Asia/Pontianak\",\"Asia/Pyongyang\",\"Asia/Qatar\",\"Asia/Qostanay\",\"Asia/Qyzylorda\",\"Asia/Riyadh\",\"Asia/Sakhalin\",\"Asia/Samarkand\",\"Asia/Seoul\",\"Asia/Shanghai\",\"Asia/Singapore\",\"Asia/Srednekolymsk\",\"Asia/Taipei\",\"Asia/Tashkent\",\"Asia/Tbilisi\",\"Asia/Tehran\",\"Asia/Thimphu\",\"Asia/Tokyo\",\"Asia/Tomsk\",\"Asia/Ulaanbaatar\",\"Asia/Urumqi\",\"Asia/Ust-Nera\",\"Asia/Vladivostok\",\"Asia/Yakutsk\",\"Asia/Yangon\",\"Asia/Yekaterinburg\",\"Asia/Yerevan\"]",
"type": "any",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2024-05-06T12:22:19.783Z",
"_postman_exported_using": "Postman/11.0.6"
}
JobIdentity.postman_environment.json
{
"id": "279b06d1-1655-469f-8aef-c72681ac881f",
"name": "JobIdentity",
"values": [
{
"key": "JobIdentity",
"value": "12356",
"type": "any",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2024-05-06T12:22:19.783Z",
"_postman_exported_using": "Postman/11.0.6"
}
JobName.postman_environment.json
{
"id": "9dcbc812-5e75-4c34-a033-28f8c638352a",
"name": "JobName",
"values": [
{
"key": "JobName",
"value": "QATest123",
"type": "any",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2024-05-06T12:22:19.783Z",
"_postman_exported_using": "Postman/11.0.6"
}
If you want to save specific key only, add an if statement.
data.values.forEach((item, index) => {
if (item.key == 'JobData') {
const id = uuidv4(); // Generate a random UUID for each key
// Create a new JSON object
const outputData = {
id,
name: `${item.key}`,
values: [item],
_postman_variable_scope: data._postman_variable_scope,
_postman_exported_at: data._postman_exported_at,
_postman_exported_using: data._postman_exported_using
};
// Write each JSON object to a separate file
const outputFileName = `${item.key}.postman_environment.json`;
fs.writeFileSync(outputFileName, JSON.stringify(outputData, null, 4));
console.log(`File '${outputFileName}' created.`);
}
});
It will save only JobData.postman_environment.json
.