Ultima virgula nu ar avea voie sa fie acolo daca vorbim de un JSON standard. Am avut si eu problema asta undeva unde generam structuri JSON si trebuia sa tai intotdeauna ultima virgula (din generare) ca sa poata fi parsata structura de alte coduri si librarii.
Eu chestia asta o fac din generare, cand trec de randul cu virgula aia fac trim la virgula si adaug terminatorul de structura (cum e la tine } ). Nu lucrez in PHP dar e acelasi lucru. Banuiesc ca e un sir generat de mana avand in vedere ca are virgula aia, ai putea umbla acolo… Altfel e mai de complicat sa extragi virgula din stringul final mai ales daca vei avea structuri imbricate cu virgule invalide.
https://github.com/hjson/hjson-php - poate te ajuta, eu am folosit versiunea Java pentru un JSON care urma sa fie scris de niste oameni si tot timpul ba aveam virgule in plus, ba erau comentarii in el, etc. HJSON e detaliat la https://hjson.org/ .