• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[JS] JSON.parse Syntax error jeśli w json'ie jest \n

Cloud VPS
0 głosów
945 wizyt
pytanie zadane 15 stycznia 2019 w JavaScript przez Kuba Jakubowski Gaduła (3,550 p.)

Witam,

kiedy próbuję użyć JSON.parse na stringu w którym jest \n otrzymuję błąd:

Uncaught SyntaxError: Unexpected token 
 in JSON at position 293
    at JSON.parse (<anonymous>)
    at presser.js:1

Na miejscu 239 w moim json'ie znajduje się właśnie \n. Kiedy go usunę problem znika.

Proszę o radę.

komentarz 15 stycznia 2019 przez ShiroUmizake Nałogowiec (46,300 p.)
No bo jak JSOn ma parsować /n do obiektu? Usuń go za pomocą backendu, albo zrób implementacja bbcode/markdown ciężko powiedzieć, zależy co w tym jsonie.

Ostatecznie niech zostawi raw data za pomocą stringify bądż body.text jeśli to promise.
komentarz 15 stycznia 2019 przez Kuba Jakubowski Gaduła (3,550 p.)

W stringu wewnątrz tego jsona jest \n. 

Mniej więcej tak:

{
  "pole": "wartosc\ndruga linia wartosci"
}

 

komentarz 15 stycznia 2019 przez ShiroUmizake Nałogowiec (46,300 p.)
Spróbuj tak JSON.stringify(object.pole);
komentarz 15 stycznia 2019 przez Kuba Jakubowski Gaduła (3,550 p.)

Przecież JSON.stringify konwertuje obiekt JS do stringa z JSON, a ja mam stringa z JSON i chcę go przekonwertować na obiekt JS.

komentarz 15 stycznia 2019 przez ShiroUmizake Nałogowiec (46,300 p.)
to wytrimuj znaki albo zmień na \\n albo <br> decyzja zależy od ciebie.
komentarz 15 stycznia 2019 przez Kuba Jakubowski Gaduła (3,550 p.)

Rzeczywiście,

mogę zmienić w backendzie wszystkie \n na coś innego podczas generowania JSON'a i potem w JS zmienić z powrotem na \n.

Szkoda, że JSON.parse tego nie obsługuje.frown

Dzięki za pomoc.

1 odpowiedź

+1 głos
odpowiedź 15 stycznia 2019 przez Ivan Maniak (60,650 p.)
wybrane 8 marca 2019 przez Kuba Jakubowski
 
Najlepsza
Zamiast zamieniać \n na <br> możesz też po prostu dodać \ przez \n, czyli \\n. (Pierwsza odpowiedz w google: JSON.parse \n in string)

Podobne pytania

0 głosów
3 odpowiedzi 4,051 wizyt
pytanie zadane 26 stycznia 2018 w JavaScript przez Konfeusz Bywalec (2,810 p.)
0 głosów
1 odpowiedź 450 wizyt
pytanie zadane 12 października 2019 w JavaScript przez Paweł Szewczyk Obywatel (1,420 p.)
0 głosów
1 odpowiedź 903 wizyt
pytanie zadane 21 stycznia 2020 w JavaScript przez niezalogowany

93,487 zapytań

142,423 odpowiedzi

322,773 komentarzy

62,910 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...