Mam obiekt JSON, który jest zwracany przez żądanie AJAX i mam pewne problemy z tym, .length
że ciągle powraca undefined
. Zastanawiam się, czy używam tego poprawnie:
console.log(data.length);
console.log(data.phones.length);
Obaj wracają, undefined
mimo że są ważnymi obiektami.
Aktualizacja:
zwrócona próbka obiektu JSON:
{"reqStatus":true,"phones":{"one":{"number":"XXXXXXXXXX","type":"mobile"},"two":{"number":"XXXXXXXXXX","type":"mobile"}}}
javascript
json
nkcmr
źródło
źródło
Odpowiedzi:
Możesz użyć czegoś takiego
źródło
Problem polega na tym, że obiekt telefonu nie ma właściwości length (chyba że zdefiniujesz go gdzieś w zwracanym JSON), ponieważ obiekty nie są takie same jak tablice, nawet gdy są używane jako tablice asocjacyjne. Gdyby obiekt telefonów był tablicą, miałby długość. Masz dwie opcje (może więcej).
Zmień strukturę JSON (zakładając, że jest to możliwe), aby stały się „telefony”
(Uwaga: dla każdego telefonu nie ma identyfikatora numerycznego, ponieważ są one zwracane w tablicy z indeksowaniem 0). W tej odpowiedzi
phones.length
będą ważne.Iteruj przez obiekty znajdujące się w obiekcie telefonu i policz je podczas podróży, np
Jeśli kierujesz tylko nowych przeglądarek Opcja 2 mogłaby wyglądać ta
źródło
Rozważ użycie underscore.js . Pozwoli ci to sprawdzić rozmiar tj. W ten sposób:
źródło
nie musisz zmieniać formatu JSON.
zastąpić:
z:
źródło
źródło
Spróbuj tego
źródło
użyj tego
lub
źródło
źródło
TechnologyId
właściwości