Tengo una lista en C#. En mi página, doy esta lista con: '@Html.Raw(Json.Encode(Model.MyList))';
Corté este objeto, el obj es bueno.
Pero cuando trato de analizarlo en un objeto JSON con 'JSON.parse', tengo esta excepción 'Token inesperado, en JSON en la posición 26 SyntaxError: Token inesperado, en JSON en la posición 26 en JSON.parse ()'.
Esto se debe a las comillas dobles en algunas claves de este objeto, como "Ejemplo4".
"Example2":"C01150", "Example3":"C01150", "Example4":"vase pompe de flèche ATC T 16""," "Example5":false," },Probé esta solución: https://salesforce.stackexchange.com/questions/233068/replace-double-quotes-with-single-quote-in-a-json-string
Y este: Cómo escapar de las comillas dobles en JSON
Entonces, hago esto: function jsonEscape(str) { return str.replace(/\n/g, "\\\\n").replace(/\r/g, "\\\\r").replace(/\t/g,"\\\\t").replace(/\\"/, '\\"');}
Pero las comillas dobles no se mueven...
JSON. parse resultado:
"Example4":"vase pompe de flèche ATC T 16"","
Estoy tratando de obtener este código:
"Example4": "vase pompe de flèche ATC T 16\"",
Quiero un objeto JSON válido.
Alguien me puede ayudar ?
El último bit de expresión regular,
replace(/\\"/, '\\"') está buscando la secuencia \" no "
Si se lee,
replace(/"/g, '\"') luego buscaría cada instancia ( g lobally) de " y la reemplazaría con una versión escapada \" segura para el analizador.
prueba esto
var str = `{ "Example2":"C01150", "Example3":"C01150", "Example4":"vase pompe de flèche ATC T 16""," "Example5":false }`; var arr = []; var arrStr = str.replace("{", "").replace("}", "").split("\n"); arrStr.forEach((item) => { arr.push(item.trim().split(":")); }); str = ""; for (let index = 0; index < arr.length; index++) { if (arr[index][1] == undefined) continue; arr[index][1] = arr[index][1].replace('"",', "").replace(",", ""); console.log(arr[index][1]); str = str + arr[index][0] + ":" + arr[index][1] + ","; } str = "{" + str.substring(0, str.length - 1) + "}"; console.log(JSON.parse(str));