Czy powinienem używać JSON tylko po to, aby użyć JSON

11

Tworzę stronę blogową do nauki z zapleczem PHP / MySQl. Wszystkie dane wejściowe użytkownika są obsługiwane za pomocą formularzy wysyłanych w żądaniach POST.

Czy użycie JSON w jakiś sposób sprawi, że będzie czystsze, łatwiejsze w utrzymaniu lub dodaniu funkcji? A może po prostu dodaję format wymiany bez powodu?

Zasadniczo, jaka funkcjonalność byłaby najlepiej zaimplementowana przy użyciu JSON?

JonOsterman
źródło
4
Jaka jest alternatywa? Tworzysz własny format danych?
@delnan: Yaml, CSV. Mógłbym chyba wymyślić kilka innych.
Robert Harvey,
10
Rzadko używa bla w imię mądrego planu. Spójrz na to, do czego JSON jest dobry, a następnie zastanów się, czy warto używać JSON do tych konkretnych aspektów.
whatsisname
@RobertHarvey: Lub standardowe formularze HTTP.
cHao,
7
I'm building a blogging site for learning- uczysz się powiązanych technologii? lub zapewnić materiały dla innych? Jeśli to pierwsze, absolutnie - użyj jsona, abyś mógł go używać, abyś nauczył się go używać. Zmierz się z nowymi technologiami - w przeciwnym razie nie nauczysz się z nich korzystać.

Odpowiedzi:

15

JSON ma kilka zalet:

  • Jest to format strukturalny, który można zweryfikować i przeanalizować za pomocą istniejących, dojrzałych narzędzi.
  • Z łatwością komunikuje się z JavaScriptem, co czyni go bardzo przydatnym w komunikacji AJAX.
  • Jest niezwykle prosty i lekki. Jeśli chcesz używać wymiany danych XML, JSON jest ogólnie lepszą alternatywą.

Moją ogólną zasadą jest, że jeśli potrzebujesz tylko zwrócić pojedynczy element semantyczny z połączenia, wyślij go jako zwykły tekst. Ale jeśli chcesz zwrócić wiele informacji, użyj JSON.

Mason Wheeler
źródło
6
w rozmowie z częścią JS nigdy nie używaj eval, aby uzyskać jego wartość, zamiast tego użyj JSON.parse dostępnego w większości przeglądarek
maniak ratchet
1
Łatwo mówi również do PHP, ponieważ json_decode()i json_encode()konwertuje między ciągiem JSON a natywną Array()strukturą danych
Izkata,
@Izkata tylko wtedy, gdy twój serwer ma te funkcje.
Darth Egregious,
Z wyjątkiem składania formularzy, JSON łamie standardy . Po co naprawiać to, co nie jest zepsute?
Brendan Long,
2
@BrendanLong: Ten standard nie mówi nic o korzystaniu z JSON lub jego nieużywaniu. Oczywiście, jeśli wysyłasz formularz, powinieneś zakodować wszystkie dane zgodnie ze standardem HTTP. Ale jeśli jeden z przesyłanych elementów formularza jest złożonym elementem zawierającym wiele elementów semantycznych, dobrym rozwiązaniem jest umieszczenie tego elementu w formacie JSON (który następnie jest poprawnie kodowany przez bibliotekę HTTP).
Mason Wheeler,
5

Dla tego, co opisujesz - brzmi to jak platforma blogowa, w której wszystko jest przesyłane za pośrednictwem formularzy - nie, nie musisz konwertować wszystkiego na JSON. PHP bezproblemowo obsługuje formularze. W tej sytuacji nie ma powodu, aby wprowadzać nowe komplikacje.

Znowu, w twoich okolicznościach , JSON może być czymś, czego możesz użyć, jeśli potrzebujesz wysłać częściowo ustrukturyzowane dane z powrotem do przeglądarki. Po stronie przeglądarki JSON byłby bardzo łatwy do przeanalizowania w javascript.

Grandmaster B.
źródło
2

JSON jest użyteczny tylko wtedy, gdy zamierzasz utworzyć stronę JavaScript, która wykorzystuje żądania Ajax do przekazywania danych do serwera / pobierania danych do wyświetlania bez wykonywania pełnego post-back. Jeśli nie masz zamiaru korzystać z tej funkcji za pomocą JSON, po prostu owijaj kod w inną warstwę, która musi być serializowana / deserializowana, aby zrobić coś pożytecznego.

Ryathal
źródło
1

Nie sądzę, że wdrożenie JSON z natury poprawi twoją witrynę w obecnej postaci. JSON to JavaScript Object Notation; więc jeśli nie zaczniesz też uczyć się JavaScript, nie widzę żadnej wartości w upewnieniu się, że wszystko jest w JSON.

Honus Wagner
źródło
Nie musisz nauczyć się JavaScript, aby używać / nadużywać JSON. Jest niezależny od języka.
CokoBWare,
0

Chociaż JSON jest bardzo elastyczny i ma dobrą strukturę, nie jest najszybszy.

JSON doskonale nadaje się do wysyłania danych z serwera do klientów, ponieważ rozwiązuje problemy z kodowaniem.

Ale na serwerze potrzebujesz maksymalnej wydajności i minimalnego zużycia miejsca na dysku. Tak więc w przypadku tabel należy używać kolumn MySQL, a w przypadku nie-tabel preferowany jest format binarny.

Aby rozwiązać problemy z rozszerzalnością plików binarnych, możesz otagować swoje struktury 4-znakowym kodem dla nazwy struktury i 1-2-bajtowym numerem dla wersji.

Triang3l
źródło
6
JSON to format danych, a nie baza danych.
Robert Harvey,
Tak, ale może służyć do przechowywania tablic.
Triang3l,