json_encode() преобразует большое число в научную нотацию

Я получаю массив объектов JSON (пример ниже). Мне нужно пройти через них и выводить объекты json индивидуально. Одним из значений "MessageID" является большое число, и когда я запускаю json_encode(), его кодируют с научной нотацией. Это не будет работать для меня, потому что номер является ключом базы данных.

Вот мой код:

<?php
$json = file_get_contents('php://input');
$events = json_decode($json);

foreach($events as $event){
  $debug = var_export($event, true); //still see the whole number here!
  $event_json = json_encode($event); //number is converted to scientific notation
  //code to create records in database
}
?>

Пример ввода json:

[{
   "event": "open",
   "time": 1433103519,
   "MessageID": 19421777396190490,
   "email": "api@mailjet.com",
   "mj_campaign_id": 7173,
   "mj_contact_id": 320,
   "customcampaign": "",
   "CustomID": "helloworld",
   "Payload": "",
   "ip": "127.0.0.1",
   "geo": "US",
   "agent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0"
}]

Я попытался вставить следующее, чтобы изменить число на строку, но это не имело никакого эффекта.

$event["MessageID"]=(string)$event["MessageID"]

Как бы я преобразовал свойство MessageID в строку или есть другой способ получить его для вывода так же, как он пришел?

0 ответов

Другие вопросы по тегам