2016-07-28 5 views
-1

Я пытаюсь расшифровать следующий JSON файлPHP ошибка json_decode: значение массива найдено, но объект требуется

{ 
    "email": "[email protected]", 
    "password": "12345", 
    "languageProficiency": { 
      "language": "English", 
      "proficiency": 4 
    }, 
    "tags": [ 
     { 
      "name": "singing" 
     }, 
     { 
      "name": "dance" 
     } 
    ] 
} 

Когда я делаю это

$data = json_decode($jsonContent, true); 
echo $data; 
die(); 

Я следующие ошибки:

Балансовая стоимость найдена, но объект не требуется

Вопрос

1) Как я могу просмотреть данные из JSON 2) Как я могу получить доступ к собственности каждого объекта в теги массива

Я тестирующих JSon againsts содержимого Эта схема

{ 
    "$schema": "http://json-schema.org/draft-04/schema#", 
    "type": "object", 
    "properties": { 
     "email": { 
     "type": "string" 
     }, 
     "password": { 
     "type": "string" 
     }, 
     "languageProficiency": { 
     "type": "object", 
     "properties": { 
      "language": { 
      "type": "string" 
      }, 
      "proficiency": { 
      "type": "integer" 
      } 
     }, 
     "required": [ 
      "language", 
      "proficiency" 
     ] 
     }, 
     "tags": { 
     "type": "array", 
     "items": { 
      "type": "object", 
      "properties": { 
      "name": { 
       "type": "string" 
      } 
      }, 
      "required": [ 
      "name" 
      ] 
     } 
     } 
    }, 
    "required": [ 
     "email", 
     "password", 
     "languageProficiency", 
     "tags" 
    ] 
    } 

ОБНОВЛЕНИЕ

Я пробовал просмотреть, чтобы просмотреть json conte нт

print_r($data) 

Но я все еще получаю ту же ошибку

+0

Вы не можете «эхо» массива, насколько я знаю. – apokryfos

+0

Для этого кода вы получите сообщение «Notice: Array to string conversion». Таким образом, ваша ошибка исходит из другого места. –

ответ

0

$data = json_decode($jsonContent, true);

Над строкой кода будет возвращать массив, для которого вы не можете использовать эхо непосредственно для печати массива.

Для печати конкретного значения массива (например, по электронной почте), сделать это следующим образом:

echo $data["email"]; 

Совет:

Использования print_r() знать структуру массива, как это,

echo "<pre>"; 
print_r($data); 
0

Вы можете попробовать print_r ($ data), чтобы исследовать значения

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