Магазин приложений Apple отправляет этот объект обратно в качестве квитанции. Я хочу разобрать его в массив. Какой самый простой способ сделать это?
{
"signature" = "AlHSJDRPuOhUBrIarX84l/YeP+ZpxYyd592/oyF7MkVYb/s13L2W8ag2C+PG0wSHPthbv9dNMBsG4TGg3aP7r7N+oa9Rsp9C3Qu03Z9b7PRzYM2KGXHDmOMk7vDpeMVlLDPSGYz1+U3sDxJzebSpbaJmT7imzUKfggEY7xxf4czfH0yj5wNzSGTOvQ==";
"purchase-info" = "ewoJIm9yaWdpbmFsLXB1cmNoYXNlLWRhdGUtcHN0IiA9ICIyMDE2LTAzLTIyIDEwOjUxOjAzIEFtZXJpY2EvTG9zX0Fucm9wYXRoLmZpcnN0IjsKCSJwdXJjaGFzZS1kYXRlLXBzdCIgP0wMy0yMiAxMDo1MTowMSBBbWVyaWNhL0xvc19BbmdlbGVzIjsKCSJxdWFudGl0eSIgPSAiMSI7Cn0=";
"environment" = "Sandbox";
"pod" = "100";
"signing-status" = "0";
}
Обратите внимание, что это не JSON, и json_decode не работает на нем.
Вот еще один быстрый пример, который может быть немного легче читать тем, кто не привык к регулярным выражениям:
$response = '{
"signature" = "AlHSJDRPuOhUBrIarX84l/YeP+ZpxYyd592/oyF7MkVYb/s13L2W8ag2C+PG0wSHPthbv9dNMBsG4TGg3aP7r7N+oa9Rsp9C3Qu03Z9b7PRzYM2KGXHDmOMk7vDpeMVlLDPSGYz1+U3sDxJzebSpbaJmT7imzUKfggEY7xxf4czfH0yj5wNzSGTOvQ==";
"purchase-info" = "ewoJIm9yaWdpbmFsLXB1cmNoYXNlLWRhdGUtcHN0IiA9ICIyMDE2LTAzLTIyIDEwOjUxOjAzIEFtZXJpY2EvTG9zX0Fucm9wYXRoLmZpcnN0IjsKCSJwdXJjaGFzZS1kYXRlLXBzdCIgP0wMy0yMiAxMDo1MTowMSBBbWVyaWNhL0xvc19BbmdlbGVzIjsKCSJxdWFudGl0eSIgPSAiMSI7Cn0=";
"environment" = "Sandbox";
"pod" = "100";
"signing-status" = "0";
}';
$response = trim(str_replace(array('{', '}', '"', ' ', ';'), '', $response));
$responseLines = explode("\n", $response);
$result = array();
foreach ($responseLines as $responseLine) {
$lineElements = explode(" = ", $responseLine);
$result[$lineElements[0]] = $lineElements[1];
}
var_dump($result);
Других решений пока нет …