/**
* Converts JSON objects for diagnostics with synchronous execution.
*
* @param {object} jsonObject The JSON object to convert.
* @param {string} format The desired output format ('string', 'array', 'key_value_pairs').
* @returns {string|Array|string} The converted JSON object in the specified format.
* @throws {Error} If the format is invalid.
*/
function convertJsonForDiagnostics(jsonObject, format) {
if (!jsonObject || typeof jsonObject !== 'object') {
return "Invalid JSON object"; // Handle invalid input
}
switch (format) {
case 'string':
try {
return JSON.stringify(jsonObject, null, 2); // Pretty print JSON string
} catch (error) {
return "Error stringifying JSON: " + error.message;
}
case 'array':
try {
return JSON.stringify(jsonObject, null, 2); // Convert to JSON array string
} catch (error) {
return "Error stringifying JSON array: " + error.message;
}
case 'key_value_pairs':
let keyValuePairs = "";
for (const key in jsonObject) {
if (jsonObject.hasOwnProperty(key)) {
keyValuePairs += `${key}: ${jsonObject[key]}\n`;
}
}
return keyValuePairs;
default:
throw new Error("Invalid format specified. Choose from 'string', 'array', or 'key_value_pairs'.");
}
}
Add your comment