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

res.json() converts object to json by res.stringify()?

Object Storage Arubacloud
0 głosów
118 wizyt
pytanie zadane 10 maja 2017 w JavaScript przez Frozenfroggie Użytkownik (990 p.)

Witam, wg dokumentacji Express 4.x .json() ma wbudowany JSON.stringify():

"res.json([body])

Sends a JSON response. This method sends a response (with the correct content-type) that is the parameter converted to a JSON string using JSON.stringify().

The parameter can be any JSON type, including object, array, string, Boolean, or number, and you can also use it to convert other values to JSON, such as null, and undefined (although these are technically not valid JSON)."

Tymczasem w express wysyłam:

app.get("/load", function(req, res) {
        res.status(200).json({response: "ok"});
});

A w ajax odbieram dane:

$.ajax({
            type: 'GET',
            url: 'https://example/load',
            contentType: 'application/json; charset=UTF-8',
            dataType: 'json'
        }).done(function(data, textStatus, xhr) {
            console.log(xhr.status + " " + textStatus);
            console.log(data);
        }).fail(function(xhr, textStatus) {
            console.log(xhr.status + " " + textStatus);
        });

Wszystko wskazuje na to że console.log(data) powinien wyświetlić: {"response":"ok"} ,okazuję się jednak, że dostaję w konsoli: Object { response: "ok" }. Dopiero gdy ręcznie przekonwertuję obiekt przez JSON.stringify() otrzymuję spodziewany rezultat.

 

1 odpowiedź

0 głosów
odpowiedź 10 maja 2017 przez Comandeer Guru (601,110 p.)
wybrane 10 maja 2017 przez Frozenfroggie
 
Najlepsza
No robi dokładnie to, co ma robić… Wysyła w formacie JSON, który jQuery formatuje do obiektu – i to jest spodziewany rezultat. Nie widzę sensu w operowaniu na JSON-ie jako stringu.
komentarz 10 maja 2017 przez Frozenfroggie Użytkownik (990 p.)
Okej, dzięki, to wiele wyjaśnia, nie wpadłem na to, że jQuery automatycznie konwertuje do obiektu. Myślałem, że ręcznie trzeba używać JSON.parse() żeby otrzymać obiekt z wysyłanego przez server json stringa dlatego coś mi się w tym wszystkim nie zgadzało ;P

Podobne pytania

0 głosów
1 odpowiedź 236 wizyt
pytanie zadane 6 sierpnia 2019 w JavaScript przez Zaqu93 Gaduła (4,850 p.)
0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 23 czerwca 2017 w JavaScript przez Bartlomiej Bywalec (2,480 p.)
0 głosów
2 odpowiedzi 2,000 wizyt

92,563 zapytań

141,413 odpowiedzi

319,590 komentarzy

61,948 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...