Отправьте `null` в браузер вместо` {} ` - PullRequest
0 голосов
/ 24 октября 2018

Я хочу иметь возможность отправить null в браузер как JSON, если я сделаю это:

json.NewEncoder(w).Encode(nil)

, тогда браузер получит null.Однако в этом контексте:

var nearby map[string]Nearby

// ...

func GetOne(w http.ResponseWriter, r *http.Request) {
    params := mux.Vars(r)
    item := nearby[params["id"]] // item could be nil?
    json.NewEncoder(w).Encode(item)
}

, если на карте ничего не существует, браузер получит {} вместо null ... есть ли способ отправить null, еслиключ не на карте?

1 Ответ

0 голосов
/ 24 октября 2018

Как указано в комментариях к запросу, значение карты является структурой.Структура не может иметь значение nil.

Если вы хотите написать null, если на карте нет значения, тогда явно укажите null в этом случае:

item, ok := nearby[params["id"]]
if ok {
   json.NewEncoder(w).Encode(item)
} else {
   io.WriteString(w, "null")
   // Can also use json.NewEncoder(w).Encode(nil), but that involves more machinery.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...