Прежде всего, вам действительно нужно разбить код на функции. Это значительно упростит отладку, потому что вы будете точно знать, какая функция работает неправильно.
Запрос JSON должен быть одной функцией, анализ JSON должен быть другой, и если вам нужно обновить экран, то должна быть другая.
Теперь, из-за вашей ошибки, я не вижу, где displayMessage
инициализируется (или определяется), поэтому вам нужно создать его, прежде чем его можно будет использовать.