Tworzę interfejs API, który zwraca wyniki jako JSON. Czy istnieje aktualna najlepsza praktyka, czy powinniśmy uwzględniać klucze w wyniku, gdy wartość jest zerowa? Na przykład:Jeśli JSON ma wartości puste
{
"title":"Foo Bar",
"author":"Joe Blow",
"isbn":null
}
lub
{
"title":"Foo Bar",
"author":"Joe Blow"
}
Ponieważ druga jest mniejsza mam skłonność do tego stylu, ale nie jestem pewien, czy nie jest preferowany styl czy nie. Z perspektywy klienta wydaje się, że oba style będą funkcjonalnie równoważne. Jakieś plusy i minusy dla każdego?
Nie można poprawnie odpowiedzieć. Prawidłowa odpowiedź zależy od wymagań aplikacji. PO po prostu wybrał odpowiedź, która odpowiada jego wymaganiom. Jeśli twoja aplikacja musi być w stanie odróżnić, czy "isbn" ma wartość null, a "isbn" nie został wysłany z serwera z innego powodu, musisz go uwzględnić. – Jacob
@Jacob Chociaż nie powiedziałem tego, moim zamiarem z tym pytaniem było to, że "pełny" JSON reprezentujący odpowiedź został zwrócony. Kiedy klient może założyć, że nie ma żadnej funkcjonalnej różnicy między tymi dwoma podejściami.Gdyby API wybiórczo nie zwracał kluczy/wartości, to tak, miałoby duże znaczenie, jakie podejście zostało podjęte. – jjathman
Zaletą pierwszego przedstawienia jest zachowanie schematu obiektu, obecność właściwości nie jest niejednoznaczna na podstawie danych. w drugim formacie informacja ta jest tracona. Specyfikacja JSON jako taka nie wymaga ani formatu AFAIK –