Я использую FQL для получения списка пользователей с Facebook. Для непротиворечивости я получаю результат как JSON. Это вызывает проблему - так как возвращенный JSON кодирует идентификаторы пользователей числами, json_decode () преобразовывает эти числа в значения с плавающей точкой, потому что некоторые являются слишком большими для помещений в интервал; конечно, мне нужны эти идентификаторы как строки.
С тех пор json_decode () делает его собственную вещь, не принимая флагов поведения, я в замешательстве. Какие-либо предложения о том, как разрешить это?
json_decode () может преобразовывать большие целые числа в строки, если вы укажете флаг в вызове функции:
$array = json_decode($json, true, 512, JSON_BIGINT_AS_STRING)
Быстро и грязно, вроде пока работает :
$sJSON = preg_replace('/:(\d+)/', ':"${1}"', $sJSON);