2016-07-08 3 views
-1

Из запроса на обслуживание я получаю следующий ответ, и я попробовал json_decode, чтобы разобрать его, но он не работает. Мне нужно проверить, является ли ["body"]->enquiry->status «ОТКРЫТО». Может ли кто-нибудь сказать мне, как разбирать этот ответ?Разбор массива JSON с PHP не работает

array(5) { 
    ["headers"] => array(5) { 
     ["server"] => string(17) 
     "Apache-Coyote/1.1" ["content-type"] => string(16) 
     "application/json" ["content-length"] => string(3) 
     "313" ["date"] => string(29) 
     "Fri, 08 Jul 2016 00:22:29 GMT" ["connection"] => string(5) 
     "close" 
    } 
    ["body"] => string(313){ 
     "version ":{ 
      "major ":1, 
      "minor ":6, 
      "revision ":0 
     }, 
     "enquiry ":{ 
      "id ":"21a2a688-c09b-48bc-8cb0-0ad596c18447", 
      "creationTime ":1467937344745, 
      "lastUpdateTime ":1467937344753, 
      "status ":"OPEN ", 
      "from ":"test ", 
      "email ":"[email protected] ", 
      "message ":"test ", 
     }, 
     "enquiries":null 
    } 
    ["response"] => array(2) { 
     ["code"] => int(202) 
     ["message"] => string(8) 
     "Accepted" 
    } 
    ["cookies"] => array(0) {} 
    ["filename"] => NULL 
} 
+1

просто получить доступ к соответствующему индексу, декодировать строку json с помощью флага массива, а затем обрабатывать его как любой нормальный массив – Ghost

+0

Код выше - ответ или декодирование ответа с помощью json_decode? Я хочу увидеть сырую реакцию. –

+0

Это сырой ответ, который я получаю от службы. Я на самом деле новичок в PHP, любая помощь очень ценится. – user3736514

ответ

1

Вот как к нему обращаться. Я использовал $response как ответ, который вы нам дали.

//We decode the 'body' from the response to json and we convert it to an array 
$body = json_decode($response['body'],true); 

//We access the status 
$status = $body['enquiry']['status']; 

Кроме того, будьте внимательны, если вы хотите проверить, равен ли статус «ОТКРЫТО». В вашем ответе статус действителен OPEN. Обратите внимание на конечное пространство. Вы можете использовать trim($status), чтобы удалить пробелы.

+0

Огромное вам спасибо, я могу получить статус сейчас. – user3736514

+0

Хорошо, сделаем это, еще раз спасибо. – user3736514

+0

Добро пожаловать :) –

Смежные вопросы