Jestem wstrząśnięty obecnością bardzo cenionych dezinformacji na tak szeroko oceniane pytanie dotyczące podstawowego tematu.
Ciągów JSON nie można cytować za pomocą pojedynczych cudzysłowów . Różne wersje specyfikacji ( oryginał Douglasa Crockforda, wersja ECMA i wersja IETF ) wszystkie stwierdzają, że ciągi muszą być cytowane z podwójnymi cudzysłowami. Nie jest to kwestia teoretyczna ani opinia, jak sugeruje obecnie przyjęta odpowiedź; jakikolwiek parser JSON w prawdziwym świecie będzie błędny, jeśli spróbujesz go przeanalizować jako ciąg cudzysłowu.
Wersja Crockforda i ECMA wyświetla nawet definicję łańcucha przy użyciu ładnego obrazu, co powinno jednoznacznie wyjaśnić:

Ładny obrazek zawiera również wszystkie prawidłowe sekwencje specjalne w ciągu JSON:
\"
\\
\/
\b
\f
\n
\r
\t
\u a następnie czterocyfrowe cyfry
Zauważ, że wbrew nonsensowi w niektórych innych odpowiedziach tutaj, \'nigdy nie jest prawidłową sekwencją ucieczki w ciągu JSON. Nie musi tak być, ponieważ ciągi JSON są zawsze podwójnie cytowane.
Wreszcie, zwykle nie powinieneś samodzielnie myśleć o ucieczce znaków podczas programowego generowania JSON (chociaż oczywiście będziesz to robił podczas ręcznej edycji, powiedzmy, pliku konfiguracyjnego opartego na JSON). Zamiast tego utwórz strukturę danych, którą chcesz zakodować, używając dowolnego rodzimego typu mapy, tablicy, łańcucha, liczby, wartości logicznych i zerowych, jakie posiada Twój język, a następnie zakoduj go do JSON za pomocą funkcji kodowania JSON. Taka funkcja jest prawdopodobnie wbudowana w dowolny używany język, na przykład JavaScript JSON.stringify, PHP json_encodelub Pythonjson.dumps. Jeśli używasz języka, który nie ma wbudowanej takiej funkcjonalności, prawdopodobnie możesz znaleźć bibliotekę parsowania i kodowania JSON do użycia. Jeśli po prostu użyjesz funkcji języka lub biblioteki do konwersji rzeczy do i z JSON, nigdy nie będziesz musiał znać reguł ucieczki JSON. To właśnie powinni zrobić tutaj nieuczciwie zadający pytanie.