decoding json field containing forward slashes using javascript

Seems easy enough, but I'm having trouble figuring it out.

let data="[{name:\"House\",id:\"1\"},{name:\"House and Land\",id:\"5\"},{name:\"Land\",id:\"6\"},{name:\"Terrace\",id:\"11\"}]";
JSON.parse(data.replace(/\s/g, "").replace(/\//g, ''));

I can't seem to convert the string above (which is from a third-party website) into valid JSON so that I can use it on my end.

Error message:

VM5304:1 Uncaught SyntaxError: Unexpected token n in JSON at position 2
    at JSON.parse (<anonymous>)

Answer №1

When working with JSON, it is important for the keys to be in quoted format. If your keys are not coming in quoted, you can use the following .replace statement to add the quotes back:

.replace(/(\w+):/g, '"$1":');

For more information on handling JSON in JavaScript, you can refer to this resource: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON

In JSON, property names must be double-quoted strings and trailing commas are not allowed.

UPDATED SOLUTION:

.replace(/(,|{)\s*(\w+)\s*:/g, '$1"$2":');

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

Encountering a 404 error when importing JSON data into PhoneGap

I need assistance with setting up a JSON query in PhoneGap to retrieve JSONP data generated from an Expression Engine template. When I directly access my JSON page at , the correct output is displayed. However, attempting to fetch this data in my iPhone ap ...

Transform Material UI Typography to css-in-js with styled-components

Can Material UI elements be converted to styled-components? <Container component="main" maxWidth="XS"> <Typography component="h1" variant="h5"> Sign in </Typography> I attempted this for typography but noticed that t ...

Transform chosen images into a slideshow using Node.js and Angular JavaScript

I'm currently working on a project where I have an array of images being printed out in Angular, which I can select and download as a zip file. However, I now want to modify this functionality to create a slideshow instead. I've already imported ...

What is the best way to add randomness to the background colors of mapped elements?

I am looking for a way to randomly change the background color of each element However, when I try to implement it in the code below, the background color ends up being transparent: { modules.map((module, index) => ( <div className='carou ...

Master the art of automatically formatting incorrect JSON using code in your Flutter project

I am currently facing an issue while trying to parse a json response. The problem lies in the presence of a trailing comma at the end of the response, causing errors during decoding. Is there a way to automatically format it from the code and remove the co ...

Troubleshooting a visual problem using react-easy-crop within a React MUI Dialog

I'm having trouble adjusting the layout of MUI Dialog in combination with react-easy-crop. My goal is to achieve a perfect display of the dialog using react-easy-crop. However, the react-easy-crop component is covering the entire dialog. I attempted t ...

Managing multiple changes in input values within an object

Looking to update multiple input field values using the handleChange() method with a starter object that includes its own properties. The goal is to assign input field values to corresponding properties within the starter object. However, the current imple ...

Is there a way to lead to a password-protected page without making it accessible through the URL?

I'm currently honing my skills in web development and embarking on a project to create an interactive puzzle website. The premise is simple - the homepage will feature just an answer input field where users can enter the correct solution to progress t ...

Ways to implement JavaScript code in Angular 7 application

I am attempting to create a collapsible navigation bar using MaterializeCSS for mobile screens and I plan to incorporate JavaScript code into it. Can you advise where I should place this JavaScript code? Below is the snippet of code that I intend to inclu ...

Avoid connecting HTML input elements with both JavaScript and Java models

I am troubleshooting an issue with my login page code. <div ng-show="!loggedIn()"> <form ng-submit="login()"> Username: <input type="text" ng-model="userName"/> Password: <input ...

I'm currently experiencing a challenge with a project I'm tackling that specifically deals with chart.js

In my recent coding project, I created a script to gather user input and then present it in various chart formats. However, upon executing the code, the selected chart fails to display after inputting values and clicking on the "generate chart" button. Her ...

Different ways to determine if a given string exists within an Object

I have an object called menu which is of the type IMenu. let menu: IMenu[] = [ {restaurant : "KFC", dish:[{name: "burger", price: "1$"}, {name: "french fries", price: "2$"}, {name: "hot dog", d ...

The lower text box on the page being covered by the virtual keyboard on IOS

Our website features a fixed header and footer with scrollable content. We have 20 text boxes on the page, but the ones at the bottom, like Zip and Telephone, are obscured by the iOS virtual keyboard that appears when a text box is clicked. If we could d ...

The google analytics tag is failing to function properly after implementing ajax on the

I am currently utilizing Google Analytics to track all events on my website. I have noticed that when the gtag scripts are directly embedded into the HTML, everything works perfectly fine (I always verify the events in Google Analytics). However, after i ...

Exploring ways to traverse a JSON encoded object in PHP with the help of JavaScript

I am facing an issue while trying to access my data from PHP. I am using the following code: echo json_encode($rows); When I comment out datatype: 'json', I can see a normally encoded JSON string. But when I use it, the alert shows me an array ...

Steps for updating a specific item within an object in an array of MongoDB document

Consider the following data collection, for which I have some questions: { "_id" : ObjectId("4faaba123412d654fe83hg876"), "user_id" : 123456, "total" : 100, "items" : [ { ...

Dealing with errors and fetching them within a react application using the useState hook

As a newcomer to React, I am currently working with a backend API in my project. One issue I encountered involves the "Login Page" functionality. When a user enters an incorrect username or password and submits the form, the API responds with a message sta ...

showing the upload preview and disabling automatic uploading in Dropzone with React

Currently, when the user clicks the upload button and selects a file, it automatically uploads the file. However, I do not want this automatic upload to happen. Instead, I want to display the selected files to the user first before uploading them. I need ...

I'm receiving the error message "Fatal error: Call to a member function query() on a non-object," what could be causing this issue?

Need help with fixing an error on my private server realmeye. The error message I'm receiving is: Fatal error: Call to a member function query() on a non-object in /home/noxus/public_html/realmeye/index.php on line 112 =========================== ...

Customize the text that appears when there are no options available in an Autocomplete component using React

Recently, I came across this Autocomplete example from MaterialUI that caught my attention. https://codesandbox.io/s/81qc1 One thing that got me thinking was how to show a "No options found" message when there are no search results. ...