代码之家  ›  专栏  ›  技术社区  ›  user1

在php中读取Json结果

  •  0
  • user1  · 技术社区  · 7 年前

    我有一个对服务器的soap请求,该请求成功运行并返回json数据。

    {"GetAccountResult":{"Header":{"Rquid":"D560BC95-24F2-F705-0585-7CCB38E37ECE","Status":{"StatusCode":"-4","Message":"Account not found","Details":null}},"Account":null}}
    

    我想知道如何在php中访问它,并且只打印 消息 ?不是整个json结果?

    我试过了

    $account   = $client->GetAccount($arrParams);
                $results = json_encode($account);
    
                echo $results->Message;
    

    但这仍然会打印完整的json对象

    4 回复  |  直到 7 年前
        1
  •  1
  •   Himanshu Upadhyay    7 年前

    以下是解决方案:

    $account   = '{"GetAccountResult":{"Header":{"Rquid":"D560BC95-24F2-F705-0585-7CCB38E37ECE","Status":{"StatusCode":"-4","Message":"Account not found","Details":null}},"Account":null}}';
    $results = json_decode($account,true);    // 2nd argument `true` returns array from JSON
    echo $results['GetAccountResult']['Header']['Status']['Message'];
    
        2
  •  0
  •   miile7    7 年前
    $result = json_decode($your_json, true);
    
    $message = $result["GetAccountResult"]["Header"]["Status"]["Message"];
    

    我强烈建议使用 isset() 检查索引是否存在。否则,最终可能会出现错误。

        3
  •  0
  •   Sambhaji Katrajkar    7 年前

    检查此解决方案:

    $account   = $client->GetAccount($arrParams);
    $results   = json_decode($account);
    
    echo $results->GetAccountResult->Header->Status->Message;
    
        4
  •  0
  •   marc_s    7 年前

    您可以通过json\U解码检索数据:

    $json = '{"GetAccountResult":{"Header":{"Rquid":"D560BC95-24F2-F705-0585-7CCB38E37ECE","Status":{"StatusCode":"-4","Message":"Account not found","Details":null}},"Account":null}}';
    $t =  json_decode($json,true);
    print_r($t['GetAccountResult']['Header']['Status']['Message']);