Sé que ya hay muchas preguntas sobre este tema, pero de alguna manera puedo encontrar la solución adecuada para mi caso.
Así que quiero subcontratar algunos términos de usuario en un archivo JSON separado. Como puedes imaginar, esas cuerdas son bastante largas.
{ "term": "Terms and services", "description": "*I´ma 300 words long string, which don´t want to stay in one line*" }esto funcionaría, siempre y cuando se mantenga en una línea, obviamente. Pero quiero esto:
{ "term": "Terms and services", "description": "*first 30 words* *second thirty words* *third thirty words* *...and so on*" }Ya intenté insertar barras diagonales inversas o \n, que tampoco funciona (quiero que las nuevas líneas se muestren en el navegador de la misma manera que se escribieron en el documento JSON. ¿O estas cadenas largas son el caso de uso absolutamente incorrecto para JSON? ¿Qué ¿Qué otra cosa podría usar con el menor esfuerzo?
¿Algunas ideas? ¡Salud!
Está confundiendo el almacenamiento de datos con la presentación de esos datos, estas son preocupaciones separadas. JSON solo se ocupa del almacenamiento de los datos y, como tal, no admite la división de un valor en varias líneas, por lo que su editor de elección debe tener una opción de ajuste de palabras.
En términos de mostrar los datos con saltos de línea incrustados, simplemente agregue cualquier marca utilizada por la capa de presentación para insertar saltos de línea, por ejemplo:
function addLinebreaks(str) { return str.replace(/\n/g, "<br>"); } node.innerHTML = addLineBreaks(data.description); Usando algo como esto, cualquier instancia de \n en su cadena de origen se convierte en una etiqueta <br> en el HTML representado.
mostrar nueva línea en la web
Puede lograr \n descansos con un CSS simple usando el valor adecuado para white-space . (hay muchas otras formas, pero este parece ser el enfoque más apropiado según los pocos datos que proporcionó).
const div = document.getElementById('div'); const json = { some_text: "Hello \n there \n I should \n wrap \n lines" } div.textContent = json.some_text; <div id='div' style="white-space: pre-line"></div>Lea más: https://www.w3.org/TR/CSS2/text.html#white-space-prop
en tu editor de código
Por lo que sé, no puede poner cadenas de varias líneas en un archivo .json .
Sin embargo, puede configurar su editor de código para ajustar el texto desbordado. Tal vez incluso haya un complemento que haga que una cadena se ajuste después de que /n aparezca en su editor de código; no lo sé, pero no me sorprendería si eso existiera.