Если я правильно читаю ваш PHP, ваш JSON будет выглядеть так:
[{ "message": "3" },{ "message": "(count_goes_here)" },{ "message": "(options_go_here)"}]
Верхний уровень JSON строки должен быть анонимным объектом, а не массивом ( details ). Так что это действительно:
{"test": ["one", "two", "three"]}
но массив сам по себе не является:
["one", "two", "three"]
Чтобы исправить это, просто оберните ваш массив в объект:
{"values": [{ "message": "3" },{ "message": "(count_goes_here)" },{ "message": "(options_go_here)"}]}
... и затем, когда вы десериализовали строку JSON, используйте свойство values
результирующего объекта для доступа к массиву.