Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][PHP]Dane z json do tabelki
brzanek
post
Post #1





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Witam mam nietypowy problem mam stronę z danymi w formacie json, która wygląda tak:
{"time":1644134255387686100,"lat":56.222444,"lon":8.22895,"alt":0,"pol":0,"mds":9339,"mcg":139,"status":2,"region":9} {"time":1644134255387686100,"lat":56.222444,"lon":8.22895,"alt":0,"pol":0,"mds":9339,"mcg":139,"status":1,"region":8}
{"time":1644133487442192400,"lat":57.404517,"lon":-5.173029,"alt":0,"pol":0,"mds":7454,"mcg":221,"status":2,"region":9}
{"time":1644133487442192400,"lat":57.404517,"lon":-5.173029,"alt":0,"pol":0,"mds":7454,"mcg":221,"status":1,"region":8}

Jak widać kod zaczyna się od { i tak też się kończy}
Jak mogę to wyświetlić w przyjemny dla oka sposób? np. w formie tabelki.

Próbowałem wyciągnąć pojedyncze rekordy na zasadzie
  1. $json = 'adres_strony';
  2. $json = file_get_contents($json);
  3. $response = json_decode($json, true);
  4. if ($response != null) {
  5. $latitude = $response['lat'];
  6. }
  7. echo $latitude;

Ale nic mi to nie dawało.
Gdzie popełniam błąd?
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


To nie jest poprawny format JSON, do sprawdzenia np. tu: https://jsonformatter.curiousconcept.com/
Sprawdź jaki jest wynik walidacji na tej stronie, a to naprowadzi Cię na rozwiązanie.


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #3





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


No właśnie tak mi się wydawało że to jakiś błędny format json. Wyświetla się błąd przy nawiasie {
Ale ja nie mogę zmienić tych danych bo takie udostępnia strona.
Więc jak to poprawnie wyświetlić?
Jest taka możliwość?
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Na podanej stronie przy walidacji tych danych jest informacja tekstowa o błędzie.
Możliwe są dwa rozwiązania, albo na podstawie tejże informacji, ale po przejrzeniu informacji z tej strony: https://developer.mozilla.org/en-US/docs/Le...pt/Objects/JSON


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #5





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Podałeś jedno rozwiązanie a drugie?
Te pierwsze rozwiązanie jest dla mnie nie zrozumiałe.
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Literówka.
"albo po przejrzeniu informacji z tej strony: https://developer.mozilla.org/en-US/docs/Le...ects/JSON".


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #7





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Ani pierwsze ani drugie rozwiązanie nic mi nie mówi.
Rozumiem, że muszę pozbyć się tych nawiasu {} ale jak to zrobić?

Ten post edytował brzanek 6.02.2022, 10:54:32
Go to the top of the page
+Quote Post
trueblue
post
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Źle rozumiesz.

Komunikat jasno wskazuje, że występuje kilka elementów JSON. Tak więc możesz parsować każdą linię z osobna.
Albo według drugiego linku struktura tablicy JSON jest taka:
[{...},
{...},
{...}]
co oznacza, że musiałbyś dodać na początku ciągu [, na końcu ciągu ], a po każdym } oprócz ostatniego, dodać przecinek. W ten sposób możesz parsować całość.


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #9





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


A jak to dodać te nawiasy i ten przecinek w php?
Go to the top of the page
+Quote Post
trueblue
post
Post #10





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Chyba żartujesz. Nie wiesz jak się skleja dwa stringi w PHP?


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #11





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Ja już się poddaję
robię to tak
  1. $json = 'adres_strony';
  2. $json = file_get_contents($json);
  3. $response = json_decode($json, true);
  4. if ($response) {
  5.  
  6. $i=0;
  7. foreach ($hourlycond1 as $cond1) {
  8. if($i++) break;
  9. $latitude = $cond1['lat'];
  10. }
  11. }
  12. echo $latitude;

Chcę wyciągnąć narazie samo lat i nic się nie dzieje - dlaczego?
Go to the top of the page
+Quote Post
viking
post
Post #12





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


No przecież masz dalej niepoprawny json, tak?


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #13





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Tak pliku json nie poprawiałem bo nie wiem jak.
Zauważyłem, że plik z tymi danymi

{"time":1644219018033653000,"lat":49.995587,"lon":-4.70365,"alt":0,"pol":0,"mds":11133,"mcg":253,"status":0,"region":1} {"time":1644218648920853800,"lat":47.824174,"lon":16.410704,"alt":0,"pol":0,"mds":5390,"mcg":249,"status":0,"region":1} {"time":1644218648920841500,"lat":47.775894,"lon":16.422004,"alt":0,"pol":0,"mds":12354,"mcg":97,"status":2,"region":9} {"time":1644218648920840400,"lat":47.773601,"lon":16.40819,"alt":0,"pol":0,"mds":4716,"mcg":171,"status":1,"region":8}

jest z rozszerzeniem .php a nie .json - może tu jest problem?
Go to the top of the page
+Quote Post
viking
post
Post #14





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A skąd te dane bierzesz? Bo może problemem jest nie to że API zwraca złe dane, ale że Ty je źle zapisujesz.


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #15





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Są to dane o wyładowaniach atmosferycznych.
Są przedstawiane w takiej formie jak na tej stronie https://pogoda-zachodniopomorskie.pl/wyladowania/danephp.php
Jest to plik php nie json.
Go to the top of the page
+Quote Post
trueblue
post
Post #16





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Potrafisz przekształcić jedną linię z tego co pokazałeś na tablicę w PHP?


--------------------
Go to the top of the page
+Quote Post
brzanek
post
Post #17





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


No niby tak jak w adresie jest ?number=1
  1. $json = 'https://'.$loginname.':'.$password.'@data.blitzortung.org/Data/Protected/last_strikes.php?number=1&west=-10&east=40&north=70&south=20&sig=0';
  2. $json = file_get_contents($json);
  3. $response = json_decode($json, true);
  4. if ($response != null) {
  5. $latitude = $response['lat'];
  6. }
  7. echo $latitude;

Ale jak w adresie jest ostatnie np. 10 ?number=10
To już nie wychodzi.
Go to the top of the page
+Quote Post
trueblue
post
Post #18





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Moje pytanie brzmi: Czy potrafisz poniższą linię (jedną linię z podanego wyniku), przekształcić na tablicę w PHP?

Czyli dane wejściowe:
{"time":1644219018033653000,"lat":49.995587,"lon":-4.70365,"alt":0,"pol":0,"mds":11133,"mcg":253,"status":0,"region":1}
a wyjściowo ma być tablica w PHP.

Potrafisz?


--------------------
Go to the top of the page
+Quote Post
viking
post
Post #19





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Chwila szukania w dokumentacji: https://www.blitzortung.org/en/compendium.php
Each line of the data files contains one JSON codes variable.

Czyli masz sobie to zaczytać np file i po kolei każą linię traktować jako pojedynczy json.


--------------------
Go to the top of the page
+Quote Post
trueblue
post
Post #20





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


To już Autor miał tłumaczone w poście #8.


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 00:43