https://codepen.io/reti/pen/MWmoEBm Dlaczego zniknęły spacje w stringach? Jaki jest najprostszy sposób na eksport obiektu JS do pliku JSON?
Osobiście pewnie bym zrobił z tego Object URL-a. Dzięki temu można ominąć wszystkie problemy związane z potrzebą enkodowania stringa. PoC: https://codepen.io/Comandeer/pen/mdmwYZN
To ma pewnie związek z użyciem Data URL, który wycina m.in. spacje. Możesz zastąpić wycinane znaki odpowiednio je enkodując funkcją encodeURIComponent lub ręcznie poprzez String.prototype.replace (dla spacji będzie to %20).
Advantages of using application/json over text/plain?
@ .::VBService::. Dzięki. Będę miał to na uwadze.
@ScriptyChris, a nie jest to związane z tym że obiekty JSON są przesyłane tak naprawdę w formacie "String jason"? a nie czystym jsonem tzn jako typem obiektowym W końcu używa tu metody
var json = JSON.stringify(data);
a to nie przesyła JSON'a tylko STRING JSON
@Wiciorny chyba to dlatego, tak jak napisałeś (nie zwróciłem uwagi na to wcześniej, ten upał, mózg się gotuje)
a nie jest to związane z tym że obiekty JSON są przesyłane tak naprawdę w formacie "String jason"?
var data = [{ key: '1', name: 'Lorem ipsum dolor', age: 32, address: 'Lorem ipsum dolor' }, { key: '2', name: 'Lorem ipsum dolor', age: 42, address: 'Lorem ipsum dolor' }]; console.log(typeof(data)) console.log(typeof(JSON.stringify(data)))
ja ten problem z Javą mam bo generalnie jak używa się w Springu adnotacji @RequestBody, to on oczekuje podania json-stringa, a nie jsona stąd bywały problemy w api JAVY z parsowaniem tego, zanim się nie okazało że to trzeba stringify robić
Previously, I thought that in the SpringMVC environment, @RequestBody received a Json object, and the debugging code was not successful. Later, I found that @RequestBody received a Json object character. String, not a Json object. However, in the ajax request is often passed JSON object, and later found that JSON.stringify (data) can be used to turn the object into a string. At the same time, when ajax requests, [color=blue][b] specifies dataType: "json", contentType:
więc tutaj wyczułem coś podobnego
dlatego Moim zdaniem zapis działa prawidłowo: text/plain
a.href = "data:text/plain;charset=utf-8," + json;
to dlaczego data:application/json zwraca OBIEKT, a nie format tekstowy? Bo tak czytam i jakoś widzę masło maślane mi się robi
Bo praktycznie wszystkie frameworki itd. obsługują konwersję JSON-a do własnego formatu obiektów out of the box. Ale przez Sieć normalnie leci tekst – deserializacja następuje już po stronie klienta.
Sama specka JSON wyraźnie zaznacza, że to format tekstowy:
JSON* is a text syntax […]
nie wiem o co chodzi, ale zmieniłem:
a.href = "data:application/json;charset=utf-8," + json;
na:
i działa :)
93,697 zapytań
142,615 odpowiedzi
323,227 komentarzy
63,232 pasjonatów
Motyw:
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
Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.