textarea un elemento de área de texto que toma tipos de objetos como entrada como
{ name: "root", backlog: [ {name: "log#1"}, ] }Acceder a los datos lo devuelve como una cadena.
¿Existe una forma sencilla de convertir la String en ese javascript object específico sin usar filtros de expresiones regulares? ¿Simplemente quitando las comillas exteriores?
use json5 o biblioteca JSON relajada .
aquí hay un ejemplo usando la biblioteca json5
let string = ` { name: "root", backlog: [ {name: "log#1"}, ] }`; let object = JSON5.parse(string); console.log(object) <script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>Para convertir una cadena en JSON, use: JSON.parse( [the input] ) .
Y, para volver a convertirlo en una cadena: JSON.stringify( [the input] ) .
Si te entiendo bien:
const string = '{ name: "root", backlog: [{name: "log#1"}]}' const jsonStr = string.replace(/(\w+:)|(\w+ :)/g, function(matchedStr) { return '"' + matchedStr.substring(0, matchedStr.length - 1) + '":'; }); const result = JSON.parse(jsonStr) console.log(result)