• 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()?

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
169 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 (607,060 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ź 408 wizyt
pytanie zadane 6 sierpnia 2019 w JavaScript przez Zaqu93 Gaduła (4,850 p.)
0 głosów
1 odpowiedź 209 wizyt
pytanie zadane 23 czerwca 2017 w JavaScript przez Bartlomiej Bywalec (2,480 p.)
0 głosów
2 odpowiedzi 2,221 wizyt

93,434 zapytań

142,429 odpowiedzi

322,662 komentarzy

62,798 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

...