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

JSON z ceną skinów STEAM

Object Storage Arubacloud
+1 głos
233 wizyt
pytanie zadane 18 maja 2017 w JavaScript przez Harkor Użytkownik (530 p.)
Kombinuje coś z sprawdzaniem ceny skinów na steam:

http://steamcommunity.com/market/priceoverview/?appid=730&currency=3&market_hash_name=StatTrak%E2%84%A2 M4A1-S | Hyper Beast (Minimal Wear)

Wiem że zapytanie zwraca JSON, po problemach z jakimiś zabezpieczeniami natknąłem się na JSONP który umożliwił mi połączenie się tyn adresem za pomocą kodu:

var jsonp = document.createElement('script');
            jsonp.src = "http://steamcommunity.com/market/priceoverview/?appid=730&currency=3&market_hash_name=StatTrak%E2%84%A2 M4A1-S | Hyper Beast (Minimal Wear)";
            document.body.appendChild(jsonp);

Już wyświetla w konsoli że połączenie jest i jest OK.
Ale nie wiem jak się dostac do tego co siedzi w tym obiekcie JSON, gdy próbuje przez operator kropki tak jak czytałem wyświetla undefined... Co robić jak się do tego wgryźć?
komentarz 18 maja 2017 przez Harkor Użytkownik (530 p.)
Próbowałem z parse...
Mam taki kod:
var s = document.createElement("script");
    s.src = "http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=StatTrak%E2%84%A2%20M4A1-S%20|%20Hyper%20Beast%20(Minimal%20Wear)";
    document.write(s);
    JSON.parse(s);
    document.write(s.lowest_price);

A dostaje takie coś w konsoli:
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data[Więcej informacji]
komentarz 18 maja 2017 przez ScriptyChris Mędrzec (190,190 p.)
Sprawdzałeś w walidatorze, czy JSON jest prawidłowy (drugi akapit z linku wyżej)?
komentarz 18 maja 2017 przez Harkor Użytkownik (530 p.)
To dostaje z linka:
{"success":true,"lowest_price":"56,--\u20ac","volume":"12","median_price":"46,66\u20ac"}

To po walidacji:
{
    "success": true,
    "lowest_price": "56,--\u20ac",
    "volume": "12",
    "median_price": "46,66\u20ac"
}

Ogólnie: 

Results

Valid JSON
komentarz 18 maja 2017 przez ScriptyChris Mędrzec (190,190 p.)

Ok, więc masz już obiekt. Nie musisz go parsować.

Ale nie wiem jak się dostac do tego co siedzi w tym obiekcie JSON, gdy próbuje przez operator kropki tak jak czytałem wyświetla undefined

Pokaż kod, którym próbujesz się dostać do czegoś z wnętrza tego obiektu. 

komentarz 18 maja 2017 przez Harkor Użytkownik (530 p.)
Aha... ok
document.write(s);
Wyświetla mi na stronie napis: [object HTMLScriptElement]
A czytałem że przez operator kropki się dostaje to poszczególnych to dopisałem:
document.write(s.lowest_price);
A to już daje mi napis: undefined
komentarz 18 maja 2017 przez ScriptyChris Mędrzec (190,190 p.)

Ale zaraz... Przecież Ty podpinasz skrypt, którego źródłem jest jakieś API (bo to, co otrzymałeś jako obiekt, przeczytałeś w zakładce Network przeglądarki?). Powinieneś raczej pobrać z tej ścieżki (adres API) dane, czyli np. skorzystać z XHR albo Fetch. Teraz pod zmienną s masz po prostu obiekt DOM, którym jest <script> z atrybutem [src] ustawionym na API. Z tego co wiem, obiekty DOM nie przechowują danych, które otrzymało się jako wynik zapytania do serwera (API).

1
komentarz 18 maja 2017 przez Harkor Użytkownik (530 p.)
Wcześniej próbowałem z XHR ale wyrzucało błąd w konsoli z jakimś cross domain że nie mogę się odwoływać do innej domeny i tak drążąc jak to ominąć natrafiłem na JSONP.
komentarz 18 maja 2017 przez ScriptyChris Mędrzec (190,190 p.)

Spróbuj tej biblioteki albo tego skryptu.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 123 wizyt
pytanie zadane 30 czerwca 2017 w JavaScript przez Harkor Użytkownik (530 p.)
0 głosów
1 odpowiedź 265 wizyt
pytanie zadane 26 kwietnia 2016 w PHP przez patryk11441 Obywatel (1,150 p.)
0 głosów
0 odpowiedzi 100 wizyt
pytanie zadane 21 marca 2020 w Bezpieczeństwo, hacking przez mreo Użytkownik (790 p.)

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 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!

...