Tips for cleaning object keys in JSON before transitioning to XML格式

To convert a JSON structure to XML, all slashes in the keys (and sub keys) must be removed because slashes are not allowed in tag names.

"langServices": {"en/ENGLISH_ONLY": "English"}

One possible solution is replacing slashes with dashes like this:

var finalData = jsonstr.replace(/\//g, "-");

This approach will effectively handle cases such as {"can/cancel" : "true"}, where the string before the slash is variable and unknown.

Answer №1

const jsonData = {
  "some/other/key/with/slashes": "foo bar baz",
  "langServices": {
    "en/ENGLISH_ONLY": "English",
    "can/cancel": "true"
  }
};

function cleanKeys(obj) {
  Object.entries(obj).forEach(function (pair) {
    let sanitizedKey = pair[0].replace(/\//g, "-");

    if (typeof pair[1] === 'object') {
      cleanKeys(pair[1]);
    }

    if (sanitizedKey !== pair[0]) {
      obj[pair[0].replace(/\//g, "-")] = pair[1];
      delete obj[pair[0]];
    }
  });
}

cleanKeys(jsonData);
console.log(jsonData);

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Transferring data from a web form to PHP using a JavaScript function

I have been working on some code recently where I am attempting to transfer the input text content named "stName" to my PHP script: <!DOCTYPE html> <html><head> <meta charset="utf-8"> <title>Untitled Document</title> &l ...

Leveraging the power of the .includes() method

Here is a question regarding the issue at hand. To tackle this problem, create a function called checkForPlagiarism with two parameters: an array containing responses from a specific individual and a string representing an external source. The function sh ...

What could be causing this JavaScript code not to run?

Help needed! I'm a student struggling to diagnose the issue in my code. Whenever I click the buttons, nothing happens at all. I've tried debugging by isolating each function, but still can't seem to figure it out. I've searched through ...

Having trouble performing a json_encode on a SQL query result in PHP

I've implemented the following MySQL query in my PHP script: $command = "SELECT weapon_id, weapon_name, weapon_dammage, weapon_munitions FROM weapon;"; $result = mysqli_query($connection, $command); $rows = array(); while($r = mysqli_fetch_assoc ...

Is there a way to save a Morris.js chart as a PDF file

I have successfully created a Morris.js Bar Chart using data from PHP and MySQL. Now, I am looking for a way to export this chart into a PDF format. I have attempted to do so using the FPDF library but I am struggling with the implementation. Can anyone ...

Dynamic content in a CSS animation that rolls credits as they scroll

Currently, I'm working on creating a credit scrolling effect that pulls data from the JustGiving API to display a list of donors. I have successfully populated the list of donors and connected to the API without any issues. However, the challenge lies ...

Searching with jQuery UI Autocomplete

I am interested in implementing jQuery UI autocomplete to allow users to search for items on my website. I have a list of products that I want to convert into JSON data (or just include them directly in JavaScript like the jQuery UI demo does), but I&apos ...

Rendering components asynchronously in ReactJS

After completing my ajax request, I need to render my component. Here is a snippet of the code: var CategoriesSetup = React.createClass({ render: function(){ var rows = []; $.get('http://foobar.io/api/v1/listings/categories/&apo ...

Tips for utilizing rowspan and colspan in BootstrapTable

I am creating a table using bootrapTable and would like to know how I can use rowspan or colspan to achieve a table layout similar to the one shown in this image: Click here for image description $table.bootstrapTable({ columns: [{ ...

Each time forEach is called, it increments the previous result by 1

My service returns a response containing the following data: {"id":157336,"results":[ {"id":"53db3c790e0a26189a000d09","iso_639_1":"en","key":"ePbKGoIGAXY","name":"Trailer 3","site":"YouTube","size":1080,"type":"Trailer"}, {"id":"550df44b925141355 ...

The message that keeps popping up says "TypeError: Unable to access the 'execute' property of an undefined object."

I am currently working on creating a Discord bot and encountering an error that says "TypeError: Cannot read property 'execute' undefined". Despite trying multiple solutions, I am still facing some issues with my code. Any help in solving this pr ...

Guide to making a dynamic clip mask with flowing trails on a digital canvas

I have successfully coded a dynamic path with trails similar to the one shown on However, when I try to replace ctx.fill() with ctx.clip(), nothing appears on the canvas. Here is the JavaScript code snippet I'm using – for the full code, visit http ...

Encountered a TypeError in Angular printjs: Object(...) function not recognized

I'm currently working on integrating the printJS library into an Angular project to print an image in PNG format. To begin, I added the following import statement: import { printJS } from "print-js/dist/print.min.js"; Next, I implemented the pri ...

Round Slider maintains the image quality by preserving the pixel count even as the slider value decreases below

My slider code is functioning well, except for the issue of blurred pixels appearing unnecessarily when the value goes below 64. Is there a way to eliminate these faded dots? $("#handle2").roundSlider({ sliderType: "min-range", radius: "100%", ...

The stacking order of elements is not affected by the z-index property when using absolute positioning

I have developed a unique custom toggle switch component with the following structure: <template> <div> <label class="switch"> <input type="checkbox" :checked="value" @c ...

Automate the manipulation of a dynamically-generated table using Selenium and javascript

Is it feasible to use Selenium to select a menu item created primarily with JavaScript? The HTML tags for this table are only visible in the view source. <table id = "table_id"> <tr> <td> <script> *** </script> </ ...

Steps for retrieving multiple documents from Firestore within a cloud function

In my cloud function, I have set up a trigger that activates on document write. This function is designed to check multiple documents based on the trigger and execute if/else statements accordingly. I have developed a method that retrieves all documents u ...

Declare a Nodejs variable as public

Here is my nodejs script to retrieve the current weather on a specific location using the command line. // Index.js // Required Modules const program = require('commander'); const clear = require('clear'); const chalk = require('c ...

Using Vue.js to create numerous modal popups

Currently, I am using Vue.JS for a research project at my workplace. My focus right now is mainly on the front-end. I have a table with several entries, and when a row is clicked, I want a modal popup window to display further details about that specific ...

What might be causing the 500 internal error in jquery.min?

Hello, I am encountering a 500 internal server error when I click this button that performs the following action: $(".btn-email").on('click', function() { swal('Waiting','Please wait, sending email now','info'); ...