简体   繁体   中英

Having trouble getting a specific value in JSON/PHP

I am trying to pull one single piece of data from a json encoded string. I managed to get the string into php's jason format, but I dont understand how to display the exact data I want (confirmations) Every time I try to access any of the data it just gives me a bracket({) and no data. I know I'm doing something wrong with retreiving the data from the variable, but I can't pu tmy finger on it.

Here's the data I want to parse, could someone please show me how to access the confirmations value from within the array of data? Thanks.

( https://projectbuilder.info/link.php?ID=jsontest&CMD=page ) [easier to read]

Source Code:

<?PHP
$return = file_get_contents("https://api.chain.com/v2/bitcoin/transactions/76e6f17cb940745255e2b8439eea5dae945a    b148f1fbba98a9fb99c9a5801320?api-key-id=ae7317a1cd4ff0d12e49a77bfd8b9dec");
var_dump(json_decode($return));
echo $return[0]["confirmations"]; //one of my many attempts to get the info, also tried without the leading zero, and different numbers. I understand arrays, I just dont understand how the json data is formatted inside the array.
?>

Output Copy(what do I do with $return to get it's confirmation value of 2896?):

object(stdClass)#1 (11) {
  ["hash"]=>
  string(64) "76e6f17cb940745255e2b8439eea5dae945ab148f1fbba98a9fb99c9a5801320"
  ["block_hash"]=>
  string(64) "00000000000000001646d024d4622a0e4a5c06299d7d776de041bc9c317be1f8"
  ["block_height"]=>
  int(329486)
  ["block_time"]=>
  string(20) "2014-11-11T02:10:21Z"
  ["chain_received_at"]=>
  string(24) "2014-11-11T02:05:48.259Z"
  ["confirmations"]=>
  int(2896)
  ["lock_time"]=>
  int(0)
  ["inputs"]=>
  array(2) {
    [0]=>
    object(stdClass)#2 (7) {
      ["transaction_hash"]=>
      string(64) "76e6f17cb940745255e2b8439eea5dae945ab148f1fbba98a9fb99c9a5801320"
      ["output_hash"]=>
      string(64) "4f7b6066396e422f1cabd60767093ec6fb4480b60f206c408ad50895541bc023"
      ["output_index"]=>
      int(0)
      ["value"]=>
      int(144475)
      ["addresses"]=>
      array(1) {
        [0]=>
        string(34) "1HPvAS96JXYUuLDs5CKNh61SvH6NJT1ykH"
      }
      ["script_signature"]=>
      string(213) "304602210087289ed01fd7d04e3c7eb5c38ea1944cbc3789658a1122610079a4f0421e2426022100fca6f5f4623bbac131f06ebdc7389ea0c76b4355da9508ecc7b02107385ee79d01 029a79a3cf6f8b90b7c1210e593a21e46c81ffbbe544eb2ab3ebbd89f33e4f8b2e"
      ["sequence"]=>
      int(4294967295)
    }
    [1]=>
    object(stdClass)#3 (7) {
      ["transaction_hash"]=>
      string(64) "76e6f17cb940745255e2b8439eea5dae945ab148f1fbba98a9fb99c9a5801320"
      ["output_hash"]=>
      string(64) "22de0dbb8d72fac9a6e8775f6f80fa3fc991c41d33fcd5081acb49c0479f2a62"
      ["output_index"]=>
      int(1)
      ["value"]=>
      int(7390022)
      ["addresses"]=>
      array(1) {
        [0]=>
        string(34) "158kR5o6EWWhFEZfLqGDvkgfoyi2Ep2fhA"
      }
      ["script_signature"]=>
      string(209) "304402205e2f36c9c22e02767e3accc8bc609b74d5a23c58e4a8edbac24cb4baf1e3feaa022043ad33becd57c5dee03fd1c1d8be1524281f6f49ba1e44a1a2b340f89554c42d01 031181694e14973f71d45f5f3ab73ee0f30dfa3f488bf53c44e46cf9f4f3d3d722"
      ["sequence"]=>
      int(4294967295)
    }
  }
  ["outputs"]=>
  array(2) {
    [0]=>
    object(stdClass)#4 (9) {
      ["transaction_hash"]=>
      string(64) "76e6f17cb940745255e2b8439eea5dae945ab148f1fbba98a9fb99c9a5801320"
      ["output_index"]=>
      int(0)
      ["value"]=>
      int(144475)
      ["addresses"]=>
      array(1) {
        [0]=>
        string(34) "1P5rwnk3GYbxgpxN9M9EziLrpvoih4c8JC"
      }
      ["script"]=>
      string(85) "OP_DUP OP_HASH160 f23e1f6dd21bab989f18c14f26bf37b4e2372eef OP_EQUALVERIFY OP_CHECKSIG"
      ["script_hex"]=>
      string(50) "76a914f23e1f6dd21bab989f18c14f26bf37b4e2372eef88ac"
      ["script_type"]=>
      string(10) "pubkeyhash"
      ["required_signatures"]=>
      int(1)
      ["spent"]=>
      bool(false)
    }
    [1]=>
    object(stdClass)#5 (9) {
      ["transaction_hash"]=>
      string(64) "76e6f17cb940745255e2b8439eea5dae945ab148f1fbba98a9fb99c9a5801320"
      ["output_index"]=>
      int(1)
      ["value"]=>
      int(7380022)
      ["addresses"]=>
      array(1) {
        [0]=>
        string(34) "1DpY5Mu2qTNkwsnPwgqFnaZ1Kq7GpKDboy"
      }
      ["script"]=>
      string(85) "OP_DUP OP_HASH160 8c9efff6e8500a36c16a939054a333d81ef23166 OP_EQUALVERIFY OP_CHECKSIG"
      ["script_hex"]=>
      string(50) "76a9148c9efff6e8500a36c16a939054a333d81ef2316688ac"
      ["script_type"]=>
      string(10) "pubkeyhash"
      ["required_signatures"]=>
      int(1)
      ["spent"]=>
      bool(true)
    }
  }
  ["fees"]=>
  int(10000)
  ["amount"]=>
  int(7524497)
}
{

Have a look at the docs: http://php.net/json_decode

Convert the json-string to a php-array and save it in a variable. Then use it like any other array to get values from it. Like this:

$return = file_get_contents('http://etc.com/');
$decoded_return = json_decode($return);

echo $decoded_return['confirmations']; //Make sure the key exists, obviously

So keep in mind that $return is a string. The json_decode function returns an array, so you have to save that array in a (new - preferably) variable to get values from it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM