Jak obliczyć liczbę rekordów pobranych z pliku JSON

0

Witam!

Pobieram dane z pliku php w formacie JSON:

 $.get('data_compass.php?callback=')

W jaki sposób obliczyć liczbę pobranych rekordów w javascript i przypisać ją do zmiennej (np. var i = 1234)?

Pozdrawiam

0

Dane masz w formacie json, pewnie w jakiejś tablicy.
Załóżmy, że tablica nazywa się "items"
Przypisanie ilości rekordów możesz zrobic tak:

var recordsCount = items.length;
0
Hagefid napisał(a):

Dane masz w formacie json, pewnie w jakiejś tablicy.
Załóżmy, że tablica nazywa się "items"
Przypisanie ilości rekordów możesz zrobic tak:

var recordsCount = items.length;

Dziękuję bardzo. U nie kodowanie JSON wygląda tak:

$stmt = $conn->prepare("SELECT czas_datetime, compass FROM tab_czujniki WHERE compass <> '---'");

$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_OBJ);
echo json_encode($results);

Jak w tej sytuacji zastosować Twoją poradę?

0

Czyli zwracasz bezpośrednio tablicę elementów a json wyglada tak:

[
  { ...},
  {...},
]

Wiec po prostu mozesz zrobic to tak: (zakładam ze status=OK, dodalem funkcje w formie callbacku - na codzień nie pracuję z js, ale wydaje mi się w porządku, musisz przetestować):

 $.get('data_compass.php?callback=', function(data, status){
               var count = data.length;
    });
0

U nie kodowanie JSON wygląda tak:

czyli ze jak? bo ja absolutnie nie widze tu jak wyglada json (moge sie domyslac, ale na pewno nie widze tego)

0
fasadin napisał(a):

U nie kodowanie JSON wygląda tak:

czyli ze jak? bo ja absolutnie nie widze tu jak wyglada json (moge sie domyslac, ale na pewno nie widze tego)

0

JSON wygląda tak:

0
Hagefid napisał(a):

Czyli zwracasz bezpośrednio tablicę elementów a json wyglada tak:

[
  { ...},
  {...},
]

Wiec po prostu mozesz zrobic to tak: (zakładam ze status=OK, dodalem funkcje w formie callbacku - na codzień nie pracuję z js, ale wydaje mi się w porządku, musisz przetestować):

 $.get('data_compass.php?callback=', function(data, status){
               var count = data.length;
    });

Zastosowałem Twoją funkcję, ale nie działa dobrze. Liczba zwracana to ok. 101034, zamiast 1210. Podejrzewam, że może to być łączna ilość znaków, a nie rekordów.

1

A ok.
To zrób tak jeszcze:

$.get('data_compass.php?callback=', function(data, status){
               var parsedData = JSON.parse(data);
               var count = parsedData.length;
    });
0

Bardzo dziękuję! Działa zgodnie z oczekiwaniem. Klikam pomógł.

1 użytkowników online, w tym zalogowanych: 0, gości: 1