Лично я считаю, что это ошибка, которую нужно исправить в PHP. JSON_FORCE_OBJECT - абсолютно не ответ. Если вы пытаетесь заняться каким-либо типичным программированием, вас постоянно обманывают. Например, следующий действительный PHP:
массив ("0" => массив (0,1,2,3), "1" => массив (4,5,6,7));
И должны быть преобразованы в
{"0": [0,1,2,3], "1": [4,5,6,7]}
Тем не менее, PHP ожидает, что я либо приму
[[0,1,2,3], [4,5,6,7]]
или
{ "0": { "0": 1, "1": 1, "2": 2, "3": 3}, "1": { "0": 4, "1": 5 , "2": 6, "3": 7}}
Ничего из этого не верно. Как я могу расшифровать такой объект? Какова возможная причина, чтобы когда-либо изменить что-то, что явно использует строки в качестве индексов? Как будто PHP пытался быть умным, чтобы помочь идиотам, которые не могут отличить строки от целочисленных, но в процессе запутал любого, кто законно использовал строки в качестве индексов, независимо от того, во что значение МОЖЕТ быть превращено.