Kod

Jak przekonwertować dokument HTML do formatu JSON

Jak przekonwertować dokument HTML do formatu JSON

Bezpłatny kurs Pythona ➞ Mini kurs dla początkujących i doświadczonych programistów. Cztery ciekawe projekty w portfolio, bezpośrednia komunikacja z prelegentem. Kliknij i dowiedz się, czego możesz nauczyć się na kursie.

Dowiedz się więcej

HTML i format danych JSON mają istotne podobieństwa w zakresie strukturyzacji informacji, ale ich zastosowanie w tworzeniu stron internetowych jest różne. HTML służy jako podstawa do wyświetlania znaczników witryny, zapewniając wizualną reprezentację treści dla użytkowników. JSON natomiast służy do wymiany danych między klientem a serwerem, zapewniając wygodny i lekki sposób przesyłania informacji. Zatem oba narzędzia odgrywają kluczową rolę w tworzeniu funkcjonalnych i interaktywnych aplikacji internetowych.

Wysyłając informacje z serwera w formacie JSON, zapewniamy ich niezależność od sposobu wyświetlania na urządzeniu użytkownika. Takie podejście pozwala użytkownikom na interakcję z danymi w różnych środowiskach: natywnej aplikacji mobilnej, narzędziu wiersza poleceń lub przeglądarce internetowej. Co więcej, poprawne wyświetlanie danych w przeglądarce często wymaga złożonej logiki JavaScript, której nie da się zintegrować z generowanym kodem HTML. Korzystanie z JSON upraszcza proces przesyłania danych i poprawia komfort użytkowania, umożliwiając programistom tworzenie bardziej elastycznych i responsywnych aplikacji.

Biblioteki do pracy z JSON są dostępne praktycznie we wszystkich współczesnych językach programowania, co potwierdza wszechstronność tego formatu. JSON to skrót od JavaScript Object Notation, co wyjaśnia obecność wbudowanych metod do pracy z JSON w JavaScript. Składnia JSON niemal całkowicie odpowiada strukturze obiektów JavaScript, co czyni ten język idealnym do pracy z tym formatem. JSON jest szeroko stosowany do wymiany danych między klientami a serwerami, co potwierdza jego znaczenie w tworzeniu stron internetowych i programowaniu w ogóle.

Gdzie można znaleźć ten Twój JSON?

Wielu programistów woli generować kod HTML w formacie JSON na żądanie z front-endu. Kod ten jest następnie konwertowany na standardowy kod HTML bezpośrednio w przeglądarce. Podobne podejście stosujemy na naszej stronie internetowej Skillbox Media, którą szczegółowo omówiliśmy w naszym artykule na temat parsowania danych. Użycie JSON do przesyłania kodu HTML optymalizuje ładowanie stron i poprawia komfort użytkowania.

Odpowiedź JSON podczas ładowania artykułów na stronie „Kod” Skillbox Media (po kliknięciu przycisku „Pokaż więcej”) Zrzut ekranu: Skillbox

Strona internetowa Reporterów Bez Granic implementuje podobną metodę ładowania dodatkowych artykułów w różnych kategoriach krajów. Przyjrzyjmy się na przykład Włochom. Kliknięcie przycisku „Pokaż więcej postów” ładuje trzy wcześniejsze artykuły. Po kliknięciu linku zobaczysz wstawkę JSON zawierającą kod artykułu wewnątrz elementu. Dzięki temu podejściu użytkownicy mogą łatwo uzyskać dostęp do materiałów archiwalnych, co usprawnia nawigację i interakcję z treścią.

Odpowiedź JSON podczas ładowania artykułów w kategoriach krajowych na stronie Reporterów bez Granic (część pierwsza). Zrzut ekranu: Skillbox Media
Odpowiedź JSON podczas ładowania artykułów w kategoriach krajowych na stronie Reporterów bez Granic (część druga) Zrzut ekranu: Skillbox Media

Konwersja HTML do JSON to proste zadanie, jeśli rozumiesz kluczowe aspekty obu formatów. Rozpoczniemy ten artykuł od omówienia podstawowych cech HTML i JSON, a następnie zbudujemy małą aplikację, która sprawnie konwertuje między tymi dwoma formatami. Zrozumienie tych funkcji pomoże Ci uniknąć typowych błędów i uprościć proces konwersji.

Krótkie wprowadzenie do różnic między HTML a JSON

Kod HTML witryny składa się z elementów składających się z trzech głównych części: znacznika otwierającego, znacznika zamykającego i treści. Każdy element odgrywa kluczową rolę w strukturze strony internetowej. Znacznik otwierający oznacza początek elementu, znacznik zamykający go kończy, a treść reprezentuje informacje zawarte w elemencie. Prawidłowa struktura HTML jest niezbędna do tworzenia efektywnych i zoptymalizowanych stron internetowych, co przyczynia się do lepszego doświadczenia użytkownika i poprawia pozycję witryny w wyszukiwarkach.

Znacznik otwierający HTML może zawierać różne atrybuty, określone w formacie atrybut=»wartość». Atrybuty te dostarczają dodatkowych informacji o elemencie i określają jego zachowanie lub wygląd na stronie internetowej. Prawidłowe użycie atrybutów poprawia SEO i czyni witrynę bardziej przyjazną dla użytkownika. Na przykład atrybuty takie jak alt dla obrazów lub title dla linków pomagają wyszukiwarkom lepiej indeksować treści. Atrybuty kluczowe, takie jak class i id, umożliwiają stosowanie stylów i skryptów, poprawiając komfort użytkowania.

JSON ma swoją unikalną strukturę: jest to zestaw par klucz-wartość. Każda para zawiera klucz i wartość, które są ujęte w cudzysłów. Po kluczu następuje dwukropek, a same pary są rozdzielone przecinkami. Wszystkie te informacje są ujęte w nawiasy klamrowe. JSON jest popularnym formatem wymiany danych ze względu na swoją prostotę i czytelność. Znaczniki JSON mogą obsługiwać różne typy wartości, takie jak liczby, ciągi znaków, wartości logiczne, obiekty, tablice i wartości null. Ta wiedza przyda się później, gdy będziemy tworzyć przykłady zawierające obiekty i tablice. JSON (JavaScript Object Notation) to wygodny format wymiany danych, często używany w tworzeniu stron internetowych i interfejsach API. Zrozumienie struktury JSON pomoże Ci efektywnie pracować z danymi i integrować je z projektami. Przecinek na końcu przed nawiasem zamykającym jest niedozwolony w JSON. Przecinki na końcu również nie są dozwolone w JSON. Jest to ważna zasada, o której należy pamiętać podczas pracy z JSON, aby uniknąć błędów podczas analizy danych. Prawidłowe użycie przecinków pomaga zapewnić poprawną strukturę danych i możliwość ich pomyślnego przetworzenia.

Różnice między HTML a JSON mogą wydawać się znaczące na pierwszy rzut oka, ale w praktyce konwersja HTML do JSON jest dość prosta. Przyjrzyjmy się temu procesowi bardziej szczegółowo.

HTML (HyperText Markup Language) to język znaczników używany do tworzenia stron internetowych. Składa się z różnych znaczników, które definiują strukturę i zawartość dokumentu. JSON (JavaScript Object Notation) to lekki format wymiany danych, który jest łatwy do odczytania przez ludzi i łatwy do analizy przez maszyny.

Podczas konwersji HTML do JSON należy wziąć pod uwagę strukturę danych, aby zachować informacje w łatwym do przetworzenia formacie. Każdy element HTML można przedstawić jako obiekt JSON, w którym tagi stają się kluczami, a ich zawartość wartościami.

Dlatego konwersja HTML do JSON wymaga ostrożnego podejścia, ale jest całkiem wykonalna. Przestrzegając jasnego schematu i reguł składni, można efektywnie konwertować dane, zachowując ich strukturę i semantykę.

Każdy element HTML można przekonwertować na strukturę JSON w formacie „klucz”: „wartość”. W tym formacie kluczem jest nazwa elementu, a wartością jest zawartość tekstowa elementu lub zagnieżdżonego elementu następnego poziomu. To podejście pozwala na łatwą integrację treści HTML z systemami wykorzystującymi JSON, upraszczając przetwarzanie i przesyłanie danych w aplikacjach internetowych.

Teraz przyjrzymy się, jak zaimplementować podobną funkcjonalność za pomocą JavaScript na jednej stronie witryny. Użycie JavaScript pozwala tworzyć interaktywne elementy, poprawiać komfort użytkowania i optymalizować interakcję z treścią. Za pomocą prostych scenariuszy pokażemy, jak skutecznie osadzić JavaScript na stronie internetowej, wprowadzając dynamiczne zmiany i ulepszając ogólną strukturę witryny.

Konwersja

Proces konwersji danych do formatu JSON nazywa się serializacją, a proces odwrotny deserializacją. Istnieją dwie główne metody konwersji znaczników HTML do JSON.

  • Konwertuj znaczniki „bezmyślnie”, upychając cały kod HTML w jedną parę klucz:wartość – czyli jako wartość klucza (jak na zrzucie ekranu znaczników Skillbox Media).
  • Napisz bardziej złożoną wersję JSON, tak aby struktura ciągu JSON w pełni odpowiadała strukturze dokumentu HTML.

Wybór metody implementacji zależy od Twoich zadań. W celach edukacyjnych przyjrzymy się drugiej, bardziej złożonej metodzie, która pozwoli nam poznać możliwości języka JavaScript i zachować strukturę strony. Rozważmy poniższy przykład kodu:

Szablon strony HTML zawiera podstawowe komponenty, takie jak elementy narzędziowe i treść znajdująca się w treści strony. Należy pamiętać, że niektóre elementy mogą zawierać atrybuty i elementy zagnieżdżone, które muszą zostać uwzględnione podczas konwersji. Prawidłowe użycie tych komponentów zapewnia poprawne wyświetlanie i funkcjonalność strony internetowej, co jest ważne dla optymalizacji SEO i doświadczenia użytkownika.

Wróćmy do typowej sytuacji pokazanej na pierwszych zrzutach ekranu: struktura strony pozostaje statyczna, podczas gdy podczas ładowania danych z serwera zmienia się tylko zawartość strony, która powinna zostać przekazana do konwertera JSON. Dlatego główny nacisk należy położyć na zawartość elementu. Pozwala to na wydajne przetwarzanie danych i zoptymalizowaną interakcję z serwerem, co jest ważne dla poprawy doświadczenia użytkownika i zwiększenia szybkości ładowania strony.

Aktualna strona zawiera kilka dowolnych akapitów i obraz. Nasz konwerter szkoleniowy oferuje wszechstronne możliwości i może konwertować nie tylko akapity tekstowe, ale także dowolne inne elementy HTML, w tym elementy zagnieżdżone do trzech poziomów, do formatu JSON. Dzięki temu jest to idealne narzędzie do pracy z różnymi formatami treści, zapewniające wygodę i elastyczność w przetwarzaniu danych. Przepływ pracy wygląda następująco: najpierw należy zdefiniować cel i zadania, które mają zostać zrealizowane. Następnie należy przeanalizować obecną sytuację, aby zidentyfikować kluczowe punkty i potencjalne problemy. Następnie możesz rozpocząć opracowywanie strategii, która będzie obejmować konkretne kroki i działania. Ważne jest również ustalenie kryteriów oceny rezultatów, aby móc później dostosowywać działania na podstawie uzyskanych danych. Ostatnim etapem będzie wdrożenie opracowanego planu i monitorowanie jego skuteczności.

  • Utwórzmy obiekt JavaScript do zapisywania elementów HTML, ich atrybutów i treści.
  • Zapisz każdy element do obiektu po kolei.
  • Przekonwertuj obiekt do formatu JSON.

Omówimy te kroki szczegółowo w następnej sekcji, ale najpierw musimy utworzyć dwa pliki.

  • Pierwszy z nich nazwiemy „HTML do JSON.html” (link do zawartości pliku w usłudze Pastebin) i umieścimy w nim rzeczywistą stronę do konwersji.
  • Drugi plik będzie nosił nazwę „script.js” (link do zawartości pliku w usłudze Pastebin) — umieścimy w nim konwerter strony do formatu JSON napisany w JavaScript.

Skrypt zostanie aktywowany po pełnym załadowaniu strony, więc umieścimy odpowiedni element w treści dokumentu HTML. Zapewni to poprawne wykonanie skryptu i poprawi komfort użytkowania. Prawidłowa integracja skryptu z kodem HTML pomaga zoptymalizować ładowanie strony i poprawić ogólną wydajność witryny.

Proste wyjaśnienie działania konwertera JSON. Ramka: serial telewizyjny „W Filadelfii zawsze słonecznie”

Teraz, gdy wyobraziliśmy sobie pożądany rezultat, przyjrzyjmy się bliżej procesowi implementacji. Pętla iteracyjna po elementach HTML powinna rozbijać je na części składowe, niczym klocki Lego. Poniższe właściwości pomogą Ci sprawnie znaleźć części składowe:

  • tagName znajdzie nazwy elementów;
  • attributes zwróci kolekcję atrybutów elementu, a wywołania attributes.name i attributes.value zwrócą nazwy i wartości poszczególnych atrybutów;
  • aby uzyskać zagnieżdżone elementy dowolnego poziomu i tekstu, będziesz potrzebować odpowiednio właściwości children i textContent.

Na każdym poziomie zagnieżdżania elementów HTML ich liczba jest najpierw liczona, a następnie iterowana za pomocą pętli for. Takie podejście pozwala na efektywne przetwarzanie struktury dokumentu, zapewniając optymalizację pracy z elementami i poprawiając wydajność skryptów. Prawidłowa organizacja kodu i użycie pętli pomagają uprościć manipulację elementami HTML i uczynić ten proces bardziej zarządzalnym.

W tym kontekście wykorzystamy właściwość length do określenia liczby elementów lub atrybutów HTML. Pomoże nam to skutecznie przeanalizować strukturę dokumentu i zidentyfikować kluczowe elementy, co jest ważne dla optymalizacji i poprawy SEO. Prawidłowe zarządzanie elementami i atrybutami HTML pomaga poprawić widoczność witryny w wyszukiwarkach.

Nazwa zmiennej e to wygodny skrót słowa „element”. Możesz jednak wybrać dowolną nazwę, która jest dla Ciebie bardziej zrozumiała i wygodna.

Pisanie nazw elementów w HTML to prosty proces. Aby to zrobić, musisz uzyskać zbiór elementów podrzędnych i iterować je, używając numeru porządkowego elementu e. Następnie, aby wyodrębnić nazwę każdego elementu, powinieneś uzyskać dostęp do właściwości tagName. Pozwoli Ci to na efektywne uzyskanie nazw wszystkich elementów podrzędnych i wykorzystanie ich później do analizy lub przetwarzania danych. Prawidłowe zastosowanie tych metod pomaga zoptymalizować pracę z DOM i usprawnia interakcję z elementami na stronie.

W tym kontekście tworzymy jasne i zrozumiałe nazwy kluczy, używając połączenia tekstu w cudzysłowie i nazw odpowiadających im zmiennych w nawiasach kwadratowych. Pomaga to ulepszyć strukturę kodu i ułatwia jego zrozumienie. Prawidłowe nazewnictwo kluczy usprawnia przetwarzanie danych i upraszcza przetwarzanie.

Podczas pracy z atrybutami konieczne jest wstępne sprawdzenie elementu pod kątem ich obecności. Jest to ważny krok, który pomaga uniknąć błędów i zapewnić prawidłową interakcję z elementami strony. Sprawdzenie obecności atrybutów stanowi podstawę późniejszych operacji, takich jak ich odczyt lub modyfikacja. Bez tego sprawdzenia mogą wystąpić problemy związane z brakującymi lub nieprawidłowymi atrybutami, co może negatywnie wpłynąć na funkcjonalność strony internetowej. Dlatego ważne jest, aby zawsze brać ten aspekt pod uwagę podczas tworzenia i optymalizacji kodu.

Reakcja konwertera zależy od wyników sprawdzenia atrybutów. W przypadku wykrycia atrybutów należy je policzyć, przetworzyć sekwencyjnie i starannie umieścić w wyznaczonym miejscu. Takie podejście zapewni poprawne wyświetlanie danych i poprawi wydajność konwertera.

Do iteracji po atrybutach używana jest osobna pętla zagnieżdżona, w której zmienna a oznacza „atrybut”.

Jeśli nie zostaną znalezione żadne atrybuty, należy ustawić pustą wartość.

Po określeniu atrybutów należy dodać zawartość elementu, która może zawierać tekst, elementy zagnieżdżone lub pozostać pusta. Aby to zrobić, ważne jest, aby najpierw określić liczbę zagnieżdżonych elementów. Jeśli nie ma żadnych elementów zagnieżdżonych, następnym krokiem jest sprawdzenie obecności tekstu. Proces ten można przeprowadzić w następujący sposób:

Po zakończeniu sprawdzania rejestrowana jest wykryta zawartość elementu pierwszego poziomu. Ten proces jest ważny dla zapewnienia dokładności i integralności danych. Rejestrowanie informacji na tym etapie pozwala na zapisanie wyników analizy i przygotowanie ich do dalszego przetwarzania lub wykorzystania.

Jeśli treść składa się z elementów drugiego poziomu, ważne jest, aby była poprawnie ustrukturyzowana, co ułatwi jej odbiór i optymalizację pod kątem wyszukiwarek. Elementy drugiego poziomu odgrywają kluczową rolę w organizacji informacji na stronie, pomagając użytkownikom i wyszukiwarkom łatwiej poruszać się po strukturze treści. Upewnij się, że nagłówki i podtytuły jasno odzwierciedlają treść, skutecznie podkreślając kluczowe tematy i podtematy. Takie podejście nie tylko poprawi komfort użytkownika, ale także zwiększy widoczność strony w wyszukiwarkach. Optymalizacja tekstu pod kątem SEO to ważny aspekt marketingu treści. Jeśli pracujesz z treściami tekstowymi, rozważ słowa kluczowe, które mogą zwiększyć widoczność treści w wyszukiwarkach. Ważne jest, aby tekst był nie tylko informacyjny, ale także łatwy w odbiorze. Ustrukturyzuj tekst za pomocą podtytułów i list, aby zwiększyć jego zrozumienie. Nie zapomnij również o linkach wewnętrznych i zewnętrznych, które pomogą użytkownikom znaleźć dodatkowe informacje. Zadbanie o to, aby tekst był unikalny i trafny dla grupy docelowej, znacznie zwiększy Twoje szanse na skuteczną promocję online.

Brak treści może negatywnie wpłynąć na doświadczenia użytkownika i pozycję strony w wynikach wyszukiwania. Wypełnienie witryny unikalną, wysokiej jakości treścią jest kluczem do przyciągnięcia odbiorców i poprawy pozycji w wynikach wyszukiwania. Bez tekstu i informacji użytkownicy mogą opuścić stronę bez znalezienia potrzebnych informacji. Dlatego ważne jest, aby witryna zawierała treści informacyjne i istotne, które odpowiadają potrzebom użytkowników i spełniają ich oczekiwania. Poprawi to doświadczenia użytkownika i zwiększy prawdopodobieństwo powrotu na stronę.

Elementy drugiego i trzeciego poziomu są dodawane w podobny sposób podczas iteracji zawartości ich elementów nadrzędnych pierwszego poziomu. Można to szczegółowo zobaczyć w przykładzie w ostatecznej wersji kodu. Takie podejście zapewnia strukturę i upraszcza pracę z elementami zagnieżdżonymi.

Drugi i trzeci poziom używają własnych pętli for do iteracji po elementach. Pętle te wykorzystują zmienne e2 i e3, a zmienne a2 i a3 służą do iteracji po atrybutach, podobnie jak na pierwszym poziomie. Takie podejście zapewnia uporządkowane i wydajne przetwarzanie danych na każdym poziomie.

Po wykonaniu pętli iteracji i zapisaniu obiektów elementów na wszystkich poziomach, w tym ich atrybutów i zawartości, przekazujemy wynikowy obiekt JavaScript do wbudowanej metody JSON.stringify(). Metoda ta serializuje obiekt, konwertując go na ciąg znaków w formacie JSON, co ułatwia zapisywanie lub przesyłanie danych. Korzystanie z metody JSON.stringify() zapewnia zgodność z różnymi systemami i pozwala na łatwą pracę z danymi w różnych aplikacjach.

Aby wyświetlić wynik na stronie, należy użyć polecenia nadpisującego zawartość elementu wartością zmiennej result. Upewnij się, że element, który chcesz zmienić, jest poprawnie zidentyfikowany, aby aktualizacja zakończyła się powodzeniem.

Wynikowy kod jest dostępny do przeglądania i kopiowania pod podanym linkiem. Po jego wykonaniu strona zostanie przekonwertowana na ciąg znaków JSON i będzie wyglądać następująco:

Każdy formater JSON może wyświetlić wynik w bardziej czytelnym formacie. Narzędzia te pozwalają użytkownikom na łatwą analizę i edycję danych JSON, poprawiając ich postrzeganie struktury informacji. Formatowanie JSON sprawia, że ​​kod jest bardziej zrozumiały, co jest szczególnie ważne dla programistów i analityków danych. Korzystanie z formaterów JSON znacznie upraszcza interakcję z danymi, umożliwia szybkie znajdowanie błędów i zwiększa efektywność pracy z interfejsami API i innymi źródłami danych.

Wynik konwersji HTML na JSON: widok w formaterze JSONZrzut ekranu: Skillbox Media

Aby zweryfikować poprawność wyniku, używamy również walidatora JSON. Pomoże to upewnić się, że dane są zgodne ze standardami formatu i wolne od błędów. Korzystanie z walidatora JSON to ważny krok w procesie rozwoju, ponieważ pomaga zidentyfikować potencjalne problemy i gwarantuje, że informacje zostaną poprawnie przetworzone w przyszłości.

Wynik konwersji HTML na JSON: widok w walidatorze JSONZrzut ekranu: Skillbox Multimedia

Zobaczysz imponujące wyniki w konsoli.

Wynik konwersji HTML na JSON: powiadomienia w konsoli Zrzut ekranu: Skillbox Media

Podsumowanie

W tym artykule omówiliśmy jedną metodę konwersji pliku HTML na ciąg JSON. Istnieje wiele podejść do realizacji tego zadania, a konkretny kod będzie się różnić w zależności od wymagań. Postępując zgodnie z proponowanym algorytmem i korzystając z wbudowanych funkcji JavaScript, możesz stworzyć własny konwerter. W następnym artykule pokażemy Ci, jak przeprowadzić inżynierię wsteczną z JSON do HTML.

Sprawdź także:

  • Jak sortować tablicę w PHP na trzynaście sposobów: instrukcje z przykładami
  • Pójście do IT bez znajomości informatyki: czy to w ogóle możliwe?
  • 16-letni programista stron internetowych: „Marzyłem o zostaniu programistą od 11. roku życia”