Недопустимая строка JSON, полученная от Mandrill Webhook

Строка JSON, полученная от Mandrill:

[{ «Событие»: «hard_bounce», «_ идентификатор»: «5760ab383b1b4e358f10cfe759440dce», «сообщение»: { «TS»: 1426810207, «_ идентификатор»: «5760ab383b1b4e358f10cfe759440dce», «государство»: «подпрыгнул», «субъект»:» Вечеринка «,» электронная почта «:» [email protected] «,» tags «: [],» smtp_events «: [],» resends «: [],» _ version «:» Nes5DEa8tOq5Z6m_b9AWIA «,«diag»: «smtp; 501 5.1.3 Синтаксическая ошибка в адресе почтового ящика» [email protected] «(непечатный символ)»,»Bgtools_code»: 10, «отправитель»: «[email protected]», «шаблон»: нулевой, «bounce_description»: «bad_mailbox»}, «ц»: 1426822720}]

Обновить:

Вот еще одна неверная строка, полученная от mandrill

[{ «Событие»: «hard_bounce», «_ идентификатор»: «cddb25d2023a486a89454d5c6cefc4c9», «сообщение»: { «TS»: 1427904051, «_ идентификатор»: «cddb25d2023a486a89454d5c6cefc4c9», «государство»: «подпрыгнул», «субъект»:» Юбилейная вечеринка «,» электронная почта «:» [email protected] «,» tags «: [],» smtp_events «: [],» resends «: [],» _ версия «:» CvawLhm-1KO4OY_FsZ3uSA «,«diag»: «smtp; 550 Нет такого пользователя здесь» «,»Bgtools_code»: 10, «отправитель»: «[email protected]», «шаблон»: нулевой, «bounce_description»: «bad_mailbox»}, «ц»: 1427935354}]

Ожидаемая строка JSON:

[
{
"event": "hard_bounce",
"_id": "5760ab383b1b4e358f10cfe759440dce",
"msg": {
"ts": 1426810207,
"_id": "5760ab383b1b4e358f10cfe759440dce",
"state": "bounced",
"subject": "Cocktail Party",
"email": "[email protected]",
"tags": [],
"smtp_events": [],
"resends": [],
"_version": "Nes5DEa8tOq5Z6m_b9AWIA",
"diag": "smtp;501 5.1.3 Syntax error in mailbox address '[email protected]' (non-printable character)",
"bgtools_code": 10,
"sender": "[email protected]",
"template": null,
"bounce_description": "bad_mailbox"},
"ts": 1426822720
}
]

Проверьте код JSON String PHP:

function validateMandrillJSONString($JSONString){
$JSONString = json_decode($JSONString);
if(is_array($JSONString)){
if(empty($JSONString)){
return FALSE;
}
else{
return TRUE;
}
}
else{
return FALSE;
}
}

Вопрос:
Когда я отправляю строку Received JSON вышеупомянутой функции PHP, она возвращает мне FALSE. Затем я обнаружил, что есть проблема в строке JSON с двойными кавычками («diag»: «smtp; 501 5.1.3 Синтаксическая ошибка в адресе почтового ящика» [email protected] «(непечатный символ)»).

Не только вышеуказанная строка. У меня есть еще несколько строк, похожих на это. Например, когда пользователь дал двойные кавычки в теме, как (Привет «Madhu», Как дела?) Я получаю ту же ошибку.

Это ошибка с мандрил или с моей стороны. Если это с моей стороны, как я могу это исправить?

Заранее спасибо.

0

Решение

Я могу сказать, что этот баг от самого себя. Я получаю недействительный JSON от mandrill. Основная проблема с двойными кавычками внутри значения ключа «Diag».

Вот мое временное исправление с использованием замены строки.

//Data received from mandrill
$queueData = '[{"event":"hard_bounce","_id":"5760ab383b1b4e358f10cfe759440dce","msg":{"ts":1426810207,"_id":"5760ab383b1b4e358f10cfe759440dce","state":"bounced","subject":"Cocktail Party","email":"[email protected]","tags":[],"smtp_events":[],"resends":[],"_version":"Nes5DEa8tOq5Z6m_b9AWIA","diag":"smtp;501 5.1.3 Syntax error in mailbox address "[email protected]" (non-printable character)","bgtools_code":10,"sender":"[email protected]","template":null,"bounce_description":"bad_mailbox"},"ts":1426822720}]';

$queueData = str_replace(':""',':"""',$queueData); // Temp Fix
$queueData = str_replace('""','"',$queueData); // Temp Fix

Любые предложения приветствуются

Спасибо.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]