php
  • arrays
  • json
  • 2014-10-30 1 views 0 likes 
    0
    {"status":1, 
        "datetime":"2014-10-30 13:53:27", 
        "data":{"authToken":"8019065c7362d1", 
         "role":{"code":"USER","name":"User","activeFlag":1} 
          } 
    } 
    

    Моего PHP кодКак восстановить вложенное значение массива с помощью Foreach

    <?php 
    $json='{"status":1,"datetime":"2014-10-30 13:53:27","data":{"authToken":"8019065c7362d16096eaa18df665521304a37549","role":{"code":"USER","name":"User","activeFlag":1}}}'; 
    $array = json_decode($json); 
    foreach ($array as $a) { 
        print_r($a); 
    } 
    ?> 
    

    Выхода:

    1 2014-10-30 13:53:27stdClass Object ([authToken] => 8019065c7362d16096eaa18df665521304a37549 [role] => stdClass Object ([code] => USER [name] => User [activeFlag] => 1)) 
    

    Моего вопроса третьего значения «authToken» не приходит. Какое свойство массива я должен использовать для получения значения декодирования JASON.

    +0

    попытка $ массив = json_decode ($ JSON, правда); –

    +0

    Это _JSON_, а не JASON + 'authToken' не является ключом массива, это свойство объекта (экземпляр' stdClass'), поэтому вам нужно получить значение с помощью '$ array-> data-> authToken' , или вам нужно будет указать 'json_decode' для возврата массива:' json_decode ($ json, true); ', затем получить значение так:' $ a ['data'] ['authToken'] ' –

    +0

    do вы хотите получить доступ к authToken? –

    ответ

    0

    Используйте эти коды для извлечения authToken из вашей переменной $array.

    $authToken = $array->data->authToken; 
    

    Вы назвали его как $array, но на самом деле это объект, так что вы должны использовать метод выше, чтобы обратиться к значению вложенного в него.


    Упомянутый выше в комментариях,

    попытка $ массив = json_decode ($ JSON, правда); - веб-разработчик

    Если использовать этот метод для декодирования JSON, вы должны использовать

    $authToken = $array['data']['authToken']; 
    

    получить authToken.

    0

    Попробуйте этот код

    $json='{"status":1,"datetime":"2014-10-30 13:53:27","data":{"authToken":"8019065c7362d16096eaa18df665521304a37549","role":{"code":"USER","name":"User","activeFlag":1}}}'; 
        $array = json_decode($json); 
    
        print_r($array->data->authToken); 
    

    Здесь $ массив StdClass объекта и данные также объект StdClass.

    +0

    Хорошо, ваш ответ правильный. Но я хочу foreach, Просьба ответить bellow array, Это вложенный массив, как можно получить данные, Можете ли вы понять мой вопрос? '[{ "Статус": 1, \t "Дата и время": "2014-10-30 13:53:27", \t "данные": { "authToken": "8019065c7362d1", \t \t "роль" : { "код": "USER", "имя": "Пользователь", "activeFlag": 1} \t} }, { "статус": 0, \t "Дата и время": "2013-10-29 12:53:27 ", \t" data ": {" authToken ":" 9019065c736857 ", \t \t" role ": {" code ":" ADMIN "," name ":" Admin "," activeFlag ": 0} \t} } ] ' –

    +0

    см. Новый ответ. –

    0
    $array = json_decode($json); 
    //echo '<pre>'; 
    foreach($array as $arr){ 
        $token[]=$arr->data->authToken; 
    } 
    print_r($token); 
    

    этот код будет хранить все AUTH: маркеры в массиве $ лексем

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