Азизджон Давронов, А откуда вы вообще берёте такую строку? Стандартные функции для JSON есть практически во всех языках.
У вас ещё и внутренние кавычки не экранированы: 'Ha'bibi (Albanian Remix)', 'Ricky Rich & Da'rdan'
Miroslav Bodrich, Можете переделать условие. x < endX + step / 2
Общее правило - для чисел с плавающей точкой сравнение на равенство никогда не делается. При необходимости оно заменяется на сравнение модуля разности чисел с погрешностью. x == y - неправильно abs(x - y) < epsilon * max(abs(x), abs(y)) - правильно.